XCTest les erreurs de build pour la cible de test Xcode 5:
J'ai mis en place un XCode 5 iOS 7 projet pour les tests unitaires.
Bien sûr, la configuration de l'unité de tests prennent tellement de temps que j'essaie de garder la foi que cela en vaut la peine. En difficulté pendant des heures sur cette erreur:
ld: building for iOS Simulator, but linking against dylib built for MacOSX file
'/Applications/Xcode5-DP5.app/Contents/Developer/Library/Frameworks/XCTest.framework/XCTest'
for architecture i386
Des idées sur la façon de résoudre?
- Je vais avoir le même problème avez vous trouver une solution?
Vous devez vous connecter pour publier un commentaire.
Vérifier votre Cadre de Recherche de Chemins dans votre test, les paramètres de la cible. Ceux-ci peuvent être endommagés lors de l'ajout de la XCTest Cadre.
Ajoutant XCTest à l'un de mes projets précédées d'un "/" pour les chemins de causer pour ne pas trouver la bonne version.
Aucune des réponses ci-dessus, a travaillé pour moi. J'ai trouvé une réponse ici dans un commentaire laissé par Tim Macfarlane.
Donc, cela signifie qu':
Deployment Postprocessing
àNO
pour DebugJ'ai eu le même problème; le problème (pour moi, au moins) que la
FRAMEWORKS_SEARCH_PATHS
construire indiqué, le SDK cadres dossier après le développeur principal de cadres dossier.Les cadres fourni avec Xcode ont trois compilations séparées: l'une pour OS X, un pour iOS (périphérique), et un troisième pour le Simulateur iOS. L'OS X de construire est le principal promoteur du dossier, les deux autres étant la vertu de leurs dossiers de plate-forme. Le hic, c'est que si vous ne spécifiez pas à rechercher dans le dossier SDK premier (qui sont dans les dossiers de plate-forme), Xcode (ou plus correctement, l'éditeur de liens) recherche l'OS X construire la première et de produire de l'erreur que vous voyez.
La solution est simple, mettez:
dans vos paramètres de construction. Si vous mettez les paramètres de construction dans le fichier de projet (je ne le recommande pas, mais c'est une autre question pour un autre jour), il est nommé "Cadre chemins de la recherche."
REMARQUE: Parfois, Xcode est un peu lent à comprendre; vous aurez probablement besoin de supprimer votre
build
dossier (mieux qu'un simple nettoyage) pour que cela prenne effet.Ont le même problème après la conversion de tests à partir de SenTestCase à XCTestCase. Revenant cadre dirs correction d'un problème:
Donc, pour moi, ce qui me manquait après avoir essayé tout le reste de ce poste, a été:
D'Autres Drapeaux De L'Éditeur De Liens:
-framework XCTest
Je suis actuellement en utilisant Xcode 6.0 (avec l'iOS 8 SDK), donc je suis surpris de voir que le "Edit > Refactoriser le code > Convertir XCTest..." l'option n'ajoute pas automatiquement.
J'étais face à problème lors de l'ajout sentestingkit cadre dans xcode 5 . Ces paramètres ont travaillé pour la résolution de problème de linker.
J'ai eu ce problème lors de l'ajout d'un autre fichier pour les tests.
Si vous faites cela avec (CMD + N) d'être sûr de ne cible
le Test Bundle (ie. 'AppNameTests').
Je suppose que ces .xctest les faisceaux ont accès à l'
XCTest Cadre.
J'ai eu le même problème après le changement de nom de mon nom de la Cible et de déplacer des choses autour. Il s'est avéré que mes tests ont été une partie de mon Objectif Principal. Assurez-vous que tous vos fichiers de test n'appartiennent qu'à votre cible de test.
Sélectionnez simplement un .m fichier, assurez-vous que vous avez le volet droit de l'ouvrir.
J'ai eu le même problème lorsque j'essaye de construire XCTTest base de tests unitaires avec pré-7.0 SDK. Quand j'ai choisi 7.0 comme ma Base SDK puis ce genre de lien d'erreur a disparu.
Eu le même problème, mais a terminé avec un peu différente de la solution.
sélectionnez XCTest.cadre et assurez-vous que seul votre dossier de test est vérifié sous l'Objectif d'Adhésion.
Assurez-vous que le Cadre de Recherche de Chemin (
FRAMEWORK_SEARCH_PATHS
) pour laYourProjectTests
cible inclut le chemin d'accès$(SDKROOT)/Developer/Library/Frameworks
, et que celui-ci est répertorié avant$(inherited)
.Dans mon cas, les deux chemins étaient présents, mais
$(inherited)
était la première.De crédit va à https://stackoverflow.com/users/181947/brian-clear sur Apple Mach-O de l'éditeur de liens (id) avertissement : bâtiment pour MacOSX, mais de se lier à des dylib construit pour iOS