Xcode 8 Beta - Échec de la conversion vers la syntaxe Swift actuelle: impossible de trouver l'hôte de test

115

Je reçois un message d'erreur lorsque j'essaye d'utiliser l'assistant de conversion de Xcode 8. Après avoir essayé de redémarrer, de télécharger un nouveau code et de supprimer mes fichiers DerivedData, je ne peux pas échapper à cette erreur:

Échec de la conversion vers la syntaxe Swift actuelle: impossible de trouver l'hôte de test

J'ai essayé les deux options qui sont: Swift 2.3 et Swift 3. Après avoir sélectionné une version, j'obtiens instantanément cette erreur.

Voici une capture d'écran de l'erreur:

Message d'erreur de conversion Xcode 8

thejuki
la source
J'ai le même problème ici. Un autre projet, plus petit, se convertit bien.
Gondomir
Je ne sais pas ce qui pourrait en être la cause. Cela me permet de sélectionner les modules à convertir. Tous les modules produisent la même erreur.
thejuki
Qu'est-ce que "l'hôte de test"? Il montre le fichier DerivedData / ding / Build / Products / Debug-iphoneos / ding.app / ding qui n'existe pas après la suppression du dossier DerivedData.
Gondomir
Vous pouvez également vérifier la version en langue Swift dans les paramètres de construction. Essayez d'en utiliser une version inférieure.
iPhoneDeveloper

Réponses:

306

Cela a fonctionné pour moi:

  1. Sélectionnez le projet Xcode dans le navigateur de gauche.
  2. Cliquez sur votre cible de test dans l' Generalonglet Projet .
  3. Divulguer «Test». Dans mon projet, le bouton déroulant "Application hôte" était vide. Sélectionnez votre application hôte appropriée.
  4. Essayez de créer votre cible de test maintenant. Si cela réussit, la syntaxe de conversion devrait également l'être.

J'ai eu ce problème après l'installation de la version bêta de Xcode 8, donc je suppose que c'est lié.

Crédit photo à @karthikkck entrez la description de l'image ici

iluvcapra
la source
5
Cela a fonctionné pour moi. Merci! Pour plus de précision: cliquez sur et sélectionnez votre cible de test dans le sélecteur à gauche du titre de l'onglet Général.
thejuki
5
Merci, a travaillé pour moi aussi. Noter ici un détail fou qui peut aussi aider les autres: le champ "Application hôte" avait déjà la valeur correcte remplie, mais simplement le désactiver et le remettre à sa valeur d'origine le faisait fonctionner.
mz2
5
Pour ce que ça vaut, mon application hôte a été définie sur "personnalisée". Le passage à la seule option disponible a résolu le problème. Merci!
Mark McCorkle
1
Où trouver celui mentionné à l'étape 3? @Bharathi
JayVDiyk
2
Je n'ai pas de section de test dans mon onglet général ??
Deuce bigalow
62

Cela m'a coûté un peu de temps pour trouver le menu déroulant "Application hôte" mentionné dans la réponse par ailleurs très utile d'iluvcapra.

Voici donc ce qu'il voulait dire:

C'est là que vous trouvez le menu déroulant. Sélectionnez votre cible principale.

C'est là que vous trouvez le menu déroulant

Oliver Reinhard
la source
22

Je trouve une solution facile pour cela, il suffit de modifier votre schéma et de désactiver les tests.

entrez la description de l'image ici

Et exécutez à nouveau la conversion.

Jamais être
la source
1
Merci! cela a fonctionné pour moi, alors que la réponse acceptée n'a pas fonctionné.
daver
Ce. Même si j'avais déjà correctement défini "Application hôte", cela ne fonctionnait pas. Je ne pourrais pas non plus exécuter les tests (obtenir le même message d'erreur ...). le projet n'utilise pas activement les tests unitaires pour le moment, mais devra examiner cela à un moment donné ...
Nicolas Miari
5

+1 iluvcapra

Vous pouvez également utiliser l'éditeur de texte pour supprimer les deux éléments suivants de votre fichier MyAppSwift.xcodeproj / project.pbxproj , recherchez TEST_HOST

Maintenant, rouvrez votre projet et exécutez à nouveau l'assistant de conversion.

    4EFFFAE51B53D5D8003CD25A /* Debug */ = {
        isa = XCBuildConfiguration;
        buildSettings = {
            BUNDLE_LOADER = "$(TEST_HOST)";
            FRAMEWORK_SEARCH_PATHS = (
                "$(SDKROOT)/Developer/Library/Frameworks",
                "$(inherited)",
            );
            GCC_PREPROCESSOR_DEFINITIONS = (
                "DEBUG=1",
                "$(inherited)",
            );
            INFOPLIST_FILE = "AF SwiftTests/Info.plist";
            LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
            PRODUCT_NAME = "FA SwiftTests";
            TEST_HOST = "$(BUILT_PRODUCTS_DIR)/AF Swift.app/AF Swift";
        };
        name = Debug;
    };
    4EFFFAE61B53D5D8003CD25A /* Release */ = {
        isa = XCBuildConfiguration;
        buildSettings = {
            BUNDLE_LOADER = "$(TEST_HOST)";
            FRAMEWORK_SEARCH_PATHS = (
                "$(SDKROOT)/Developer/Library/Frameworks",
                "$(inherited)",
            );
            INFOPLIST_FILE = "AF SwiftTests/Info.plist";
            LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
            PRODUCT_NAME = "FA SwiftTests";
            TEST_HOST = "$(BUILT_PRODUCTS_DIR)/AF Swift.app/AF Swift";
        };
        name = Release;
    };
Scott Nguyen
la source
5

entrez la description de l'image ici

Veuillez essayer ces étapes:

  1. Sélectionnez votre projet sur le côté gauche de Xcode.
  2. Accédez aux cibles et sélectionnez vos tests de projet.
  3. Sélectionnez l'onglet Général, sélectionnez la liste déroulante Application hôte et choisissez votre application hôte.
  4. Convertissez ou exécutez votre projet.

Essayer ces étapes a fonctionné pour moi.

Karthickkck
la source
0

Dans mon cas, j'ai supprimé ma cible de tests, puis je l'ai rajoutée en utilisant les cibles + ci-dessous et en sélectionnant "iOs Unit Testing Bundle"

Pour une raison quelconque, cela a eu une erreur de compilation, j'ai donc changé le "Chemin des fichiers de construction intermédiaires par configuration: pour ma cible de test en $ (PROJECT_TEMP_DIR) / $ (CONFIGURATION) pour le débogage et la publication. Cela a permis à la compilation de fonctionner.

Mark80
la source
-1

Corrigez cela en 3 étapes:

  1. Supprimez d'abord votre cible de test
  2. Sélectionnez Edition -> Convertir -> Vers la syntaxe Swift actuelle ... et effectuez la conversion
  3. Ajoutez ensuite une nouvelle cible de test
Marmoy
la source