40 votes

xcode 4 ne parvient pas à lancer les tests unitaires (avec erreur de l'éditeur de liens) après la création d'un nouveau schéma

Mes tests d'unité a bien fonctionné dans xcode4 jusqu'à ce que j'ai dû créer un nouveau schéma pour compiler un programme à exécuter sur mon appareil pour le test.

Tous les je ne a été la création d'une nouvelle Cible et un nouveau Schéma, maintenant j'essaie d'exécuter les tests unitaires et obtenez l'erreur suivante:

Le test bundle [...]des Tests.octest n'a pas pu être chargé, car un lien erreur s'est produite. Il est probable que dyld ne peut pas localiser un cadre de cadre ou de la bibliothèque à la la grappe-test a été liée à l'encontre, peut-être parce que le cadre ou à la bibliothèque avait un mauvais chemin d'installation au moment de la liaison.

Qu'ai-je pause?

47voto

iandotkelly Points 4286

Comme @Haoest et @Pierre DeWeese ci-dessus les commentaires à la Réponse 1 - j'ai eu exactement le même problème quand j'ai changé le nom du produit.

Pour corriger cela pour le cas où vous avez renommé le produit, vous devez aller dans les Paramètres de construction de l'onglet cible de test, et de changer le lien de la section - le Debug et Release bundle chargeur de paramètres. Si vous avez renommé le produit - le répertoire et le nom de l'application peuvent être incorrectes.

Merci à eux deux pour le rappeler - mais j'ai pensé à cette alternative corriger cette situation méritait une meilleure visibilité qu'un commentaire.

28voto

Mr. Berna Points 7329

J'ai également rencontré des problèmes avec Xcode 4 après avoir ajouté une cible à un projet existant. J'ai finalement compris que le Xcode DerivedData pour le projet était endommagé. En supprimant ces données, j'ai obligé Xcode à reconstruire les données et le projet est redevenu normal. J'ai trouvé les données dans le dossier de ma bibliothèque de départ (~ / Library / Developer / Xcode / DerivedData /).

8voto

sdsykes Points 908

J'ai tout essayé (y compris les autres réponses et de celles indiquées ici http://twobitlabs.com/2011/06/adding-ocunit-to-an-existing-ios-project-with-xcode-4/), mais a finalement trouvé une autre solution:

Set de Déploiement de post-traitement (dans la section Déploiement des Paramètres de construction) NON pour la cible de Débogage.

Avant j'ai fait cela, l'exécutable a été dépouillé, et le lien échouerait avec

Undefined symbols for architecture i386:
  "_OBJC_CLASS_$_SomeClassUnderTest", referenced from:
      objc-class-ref in SomeTest.o

N'importe qui Bande Liés Produit et la Bande des Symboles de Débogage Lors de la Copie ont été mis en à PAS, il ne fait pas de différence - en changeant seulement le Déploiement de post-traitement de réglage finalement fait en sorte que les symboles n'ont pas été dépouillés.

2voto

alex-i Points 3089

Même message d'erreur, dans mon cas, je ne liais pas l'une des classes nécessaires lors des tests.

2voto

Dan Poltawski Points 380

J'ai découvert que le problème était que «l'optimisation du temps de liaison» était activée sur ma version de débogage. Le régler sur non résolut le problème.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X