2013-04-11 3 views
31

Je développe une application iOS existante et je dois écrire des cas de test unitaires pour ce projet. Il est en cours de création et d'exécution dans Simulator 6.0. Chaque fois que j'essaie de tester le projet, il affiche le message d'erreur ci-dessous. Je n'arrive pas à comprendre l'erreur exacte."Fichier non trouvé", "la commande de l'éditeur de liens a échoué avec le code de sortie 1" dans Xcode 4.5.1

id: file not found: /Users/Yuva/Library/Developer/Xcode/DerivedData/FlyApp-aexukpgtbathuadgxlnm/Build/Products/Debug-iphonesimulator/FlyApp.app/FlyApp 
clag: error: linker command failed with exit code 1 (use -v to see invocation) 

Pourriez-vous m'aider s'il vous plaît à résoudre cette erreur de l'éditeur de liens et testez l'appli?

Répondre

0

Votre éditeur de liens est à la recherche d'un fichier à: /Users/Yuva/Library/Developer/Xcode/DerivedData/FlyApp-aexukpgtbathuadgxlnm/Build/Products/Debug-iphonesimulator/FlyApp.app/FlyApp

Avez-vous suivi le chemin pour vérifier si le fichier est là? Notez que FlyApp.app est probablement un paquet et que vous devrez "voir le contenu du paquet" si vous le voyez depuis le Finder. Si ce n'est pas le cas, soit 1) vous devez d'abord créer FlyApp.app, soit 2) vous avez quelque chose dans votre code de test qui dépend de sa présence, qui ne peut pas être déterminée à partir de votre question.

+0

Salut. Je ne suis pas en mesure de voir/Users/Yuva/Library/car à l'intérieur du dossier Yuva, la bibliothèque est manquée. Que dois-je faire pour résoudre ce problème? Pouvez-vous m'aider? Merci. –

+0

Pour une raison quelconque, le code que vous avez écrit pense qu'il y a un fichier là-bas. Je sais que parfois les dossiers DerivedData sont foireux, et peut-être que le fait de regarder l'élément de menu Preferences-> Locations de Xcode pourrait l'effacer. –

+0

Merci pour votre réponse. Maintenant, j'ai le dossier Données dérivées suivi de votre guide. Il existe de nombreux dossiers avec Build, Index, info.plist, Logs, scm.plist et TextInex. Puis-je supprimer les éléments du dossier DerivedData? Aidez-moi, s'il vous plaît. Merci. –

0

La réponse se trouve dans votre entrée Build Settings> Library Search Paths. Assurez-vous qu'il n'y a aucun chemin qualifié complet répertorié ici. Décorez-les avec l'idiome $ SRCROOT et placez le chemin avec des guillemets doubles. S'il existe des antislashs d'échappement, assurez-vous de les supprimer également. Faites un nettoyage puis construisez et vous devriez être de retour dans les affaires. Cela semble être un problème avec Xcode 5.x

35

J'ai rencontré le même message d'erreur. Il s'est avéré que j'avais renommé ma cible d'application et que je n'avais pas mis à jour la cible de test, les paramètres de génération, le paramétrage du chargeur d'ensemble à mon nouveau nom d'application.

Plus de détails sur ce paramètre peut être trouvé à Adding Unit Tests to an existing iOS project with Xcode 4 je passé en revue les mêmes étapes et il m'a aidé à réparer mon projet dans Xcode 5.

+2

J'ai eu ce problème après le changement de nom . Changer 'Loader Bundle' dans les paramètres de test Target Build m'a aidé à le réparer. – derpoliuk

+0

Même chose ici: quelqu'un a renommé l'application, et l'éditeur de liens était toujours à la recherche de l'ancien. –

+1

Cela a fonctionné pour moi. Pour les débutants comme moi persiste à trouver la "cible de test" des "paramètres du projet". Vous verrez immédiatement les chemins "bundle loader" erronés dans la section "linking", mais ce n'était pas la source de mon erreur car ces entrées se réfèrent à un "$ (TEST_HOST)". Faites défiler jusqu'à la section "testing" et corrigez les entrées "test host" et cela mettra à jour la section de liaison. – Josh

81

Cette erreur me rendu fou de 1,30 heures

J'ai changé nom du produit et désactivé l'option d'instantané. Puis soudainement cette erreur apparaît.

L'erreur est ld: fichier non trouvé: .././ previousproductname.app/previousproductname

étapes que j'ai suivi pour déboguer et corriger

  1. l'organisateur supprimé Ouvert le deriveddata, redémarrez Xcode. - non résolu

  2. A suivi les étapes de ce lien http://twobitlabs.com/2011/06/adding-ocunit-to-an-existing-ios-project-with-xcode-4/ - même erreur, non résolu.

  3. Enfin changé le nom du régime, supprimé mon ancien régime et ajouté nouveau, ont résolu mon problème.

Toutes les étapes ci-dessus sont valides.

Puis

+14

Créer un nouveau système fonctionne pour moi – onmyway133

+6

Créer un nouveau régime fonctionne pour moi aussi, merci beaucoup !!! – Will

+18

J'ai eu le même problème - Créer un nouveau régime fonctionne pour moi. Étapes dans XCode 6 Allez à TABLES PRODUITS puis allez dans SCHEMA puis allez dans GERER SCHEMA PRESS Signe moins puis + pour créer un nouveau schéma. – user1154390

17

Supprimer votre système puis recréer (cliquez sur icône ou en utilisant autocreate de Xcode). Ça marche pour moi.

+0

cela fonctionne pour moi, mon dieu ive été me frapper la tête juste pour le réparer, Merci – arnold

+0

@haotang vous êtes un épargnant de vie ... Merci beaucoup ... j'ai essayé tant solutions mais rien n'a fonctionné sauf ceci ... Ty :) –

+0

@NikhilLihla yw :) – haotang

14

Vous devez avoir changé le nom de votre produit.En raison d'une mauvaise correspondance entre le nom de votre espace de travail et le nom du produit (application), cette erreur se produit.

Vous avez juste besoin de remplacer le nom de l'espace de travail par le nom du produit (application) dans les paramètres TEST HOST Build de la zone ProjectName-Tests comme indiqué dans l'image. Pour rattraper cela, sélectionnez ProjectName-Tests target, sélectionnez Build Settings, recherchez le terme Test Host.

enter image description here

Ceci est la solution de configuration standard pour cette erreur.

À la vôtre !!

+0

THATS IT !!!!! Merci, Kuldeep. –

+0

Toujours mon plaisir @ ThomásC. :) – Kuldeep

+0

C'est ce qui m'est arrivé lorsque j'ajoute un espace dans le nom du produit. Rappelez-vous que vous devez changer non seulement un nom mais deux dans le même chemin, par ex. de FlyApp.app/FlyApp à abcd.app/abcd – Bruce

0

Créer un nouveau schéma. L'ID de l'ensemble/nom de la cible/exécutable/nom du projet, etc. sont tous des concepts légèrement différents. Si vous en changez un (comme je l'ai fait), l'ancien schéma peut toujours être configuré pour rechercher l'ancienne valeur comme nom de l'exécutable, tandis que le processus de construction peut avoir été mis à jour pour ne plus générer cet exécutable.

5

Sur Xcode 6 vous devez:

  1. aller aux produits dossier
  2. cliquez sur le fichier .xctext
  3. sur "CIBLES" choisir Tests
  4. et sur l'application hôte choisissez votre application.
  5. Cliquez sur l'application de construction.

Fonctionne pour moi!

0

ARGH! C'est un problème terriblement frustrant qui est sorti du bleu de mon XCode 8.2

Dans mon cas, il s'agissait de retirer ma cible Tests du système, de créer et d'exécuter l'application principale, puis de lire la cible Tests sur le ' Test 'section.

Il semble que la cible Tests essayait de trouver quelque chose qu'il voulait dans les données dérivées qui n'a pas encore été construit. L'exécution de l'application sans essayer de générer des tests a également permis de préparer les données dérivées précédemment manquantes.

... Insanity fait deux fois la même chose en XCode et attend le même résultat: |

Questions connexes