web-dev-qa-db-fra.com

«Fichier introuvable», «Échec de la commande de l'éditeur de liens avec le code de sortie 1» dans Xcode 4.5.1

Je développe une application iOS existante et je dois écrire des cas de tests unitaires pour ce projet. Il se construit et s'exécute dans Simulator 6.0. Chaque fois que j'essaie de tester le projet, il affiche le message d'erreur ci-dessous. Je ne suis pas en mesure de déterminer l'erreur exacte.

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 à résoudre cette erreur de l'éditeur de liens et à tester l'application?

32
Yuvaraj.M

Cette erreur m'a rendu fou pendant 1h30

J'ai changé le nom de mon produit et désactivé l'option d'instantané. Puis soudain, cette erreur est apparue.

L'erreur est ld: fichier introuvable: .././ previousproductname.app/previousproductname

Étapes que j'ai suivies pour déboguer et corriger

  1. Ouvert l'organisateur a supprimé les données dérivées, redémarrez Xcode. - non résolu

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

  3. Enfin changé le nom du schéma, supprimé mon ancien schéma et ajouté de nouveaux, ont résolu mon problème.

Toutes les étapes ci-dessus sont valables.

Alors

84
raja

J'ai rencontré le même message d'erreur. Il s'est avéré que j'avais renommé la cible de mon application et que je n'avais pas mis à jour la cible de test, les paramètres de build et le paramètre Bundle Loader avec mon nouveau nom d'application.

Plus de détails sur ce paramètre peuvent être trouvés sur Ajout de tests unitaires à un projet iOS existant avec Xcode 4 J'ai passé en revue les mêmes étapes et cela m'a aidé à corriger mon projet dans Xcode 5.

35
ahalls

Supprimez votre schéma puis recréez-le (cliquez sur une nouvelle icône ou utilisez la création automatique de xcode). Ça marche pour moi.

17
haotang

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.

Il vous suffit de remplacer le nom de l'espace de travail par le nom du produit (application) dans les paramètres de génération d'hôte TEST de la cible ProjectName-Tests, comme indiqué dans l'image. Pour rattraper cela, sélectionnez la cible ProjectName-Tests, sélectionnez Build Settings, recherchez le terme Host Test.

enter image description here

Il s'agit de la solution de configuration standard pour cette erreur.

À votre santé!!

17
Kuldeep

Sur xcode 6, vous devez:

  1. aller au dossier produits
  2. cliquez sur le fichier .xctext
  3. sur "CIBLES" choisissez Tests
  4. et sur l'application hôte, choisissez votre application.
  5. Cliquez sur créer une application.

Travaille pour moi!

6
Eli

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

Dans mon cas, il s'agissait de supprimer ma cible de tests du schéma, de créer et d'exécuter l'application principale, puis de relire la cible de tests dans la section `` Test ''.

Il semble que la cible Tests essayait de trouver quelque chose dans les données dérivées qui n'était pas encore construit. L'exécution de l'application sans essayer de créer 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 dans XCode et attend le même résultat: |

1
bitwit

Votre éditeur de liens recherche un fichier sur: /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 package et vous devrez "voir le contenu du package" si vous visualisez à partir du Finder. Si ce n'est pas le cas, 1) vous devez d'abord créer FlyApp.app, ou 2) vous avez quelque chose dans votre code de test qui dépend de sa présence, qui ne peut pas être déterminé à partir de votre question.

0
Owen Hartnett

La réponse réside dans votre entrée Build Settings> Library Search Paths. Assurez-vous qu'aucun chemin d'accès complet n'y figure. Décorez-les avec l'idiome $ SRCROOT et entourez le chemin de guillemets doubles. S'il y a des barres obliques inverses d'échappement, assurez-vous de les supprimer également.

Faites un nettoyage puis une construction et vous devriez reprendre vos activités. Cela semble être un problème avec Xcode 5.x

0
Askar Hussain

Créez un nouveau schéma. L'identifiant du bundle/le nom de la cible/l'exécutable/le 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 défini pour rechercher l'ancienne valeur comme nom de l'exécutable, tandis que le processus de génération peut avoir été mis à jour pour ne plus générer cet exécutable.

0
snakeoil