J'ai des problèmes pour exécuter un projet dans Xcode 5.0.2
Je reçois l'erreur suivante:
dyld: Library not loaded: @rpath/XCTest.framework/Versions/A/XCTest
Referenced from: /Users/chris/Library/Developer/Xcode/DerivedData/relatio-cwlmozvklaldmictbbjthzuoxnxz/Build/Products/Debug/relatio.app/Contents/MacOS/relatio
Raison: image non trouvée (Lldb)
Comment résoudre ce problème?
Il semble que votre cible principale soit la liaison avec XCTest.framework et votre cible de test. Il ne devrait être lié qu'à la cible principale.
1) Allez dans les paramètres du projet
2) Allez à la cible principale de vos applications -> autres drapeaux de l'éditeur de liens
3) supprimer '-framework XCTest'
4) assurez-vous que le champ 'autres indicateurs d'éditeur de liens' de votre cible de test contient toujours '-framework XCTest'
J'ai rencontré cette erreur en renommant mes cibles, l'une d'entre elles étant une cible de test. Après avoir lu les autres réponses, je me suis rendu compte que mes phases de construction> Compiler les sources incluaient des classes de test en tant que sources de compilation pour les cibles non-test qui essayaient ensuite d'importer le framework XCTest.
Supprimer les classes de test des sources de compilation de ma cible habituelle a résolu ce problème.
Le problème ici est que, selon le message d'erreur dyld que vous avez posté, votre application est liée à XCTest.framework. C'est faux; seul votre groupe de test doit être lié à XCTest.framework car seul votre groupe de test contient des tests.
J'ai eu un problème similaire avec la bibliothèque OCMock et la solution est:
target :"Application Tests", :exclusive => true do
pod 'OCMock'
end
Voici comment j'ai résolu le problème:
Dans "Link Binary With Libraries" de ma cible principale (sous Build Phases), c'est le framework de test que j'utilisais (Nimble.framework) qui était à l'origine du problème. Supprimé, et tout va bien!
entrez la référence de votre framework sur le chemin de recherche du framework AND Le chemin de recherche du chemin d’exécution sous "Paramètres de construction" ---...
Dans notre cas, nous souhaitons utiliser Mockingjay
à la fois pour la cible d'application et pour la cible de test.
target 'MyProject' do
pod 'Mockingjay/Core'
# all pods that are not test go here
target 'MyProjectTest' do
inherit! :search_paths
pod 'Mockingjay/XCTest'
pod 'Quick', ' ~> 0.9.2'
# .. all test pods go here
end
end
J'ai le même problème parce que j'ajoute un nouveau fichier dans le framework. Il suffit donc d’exécuter "pod install
" pour résoudre mon problème. Mais assurez-vous que votre pod sous Tests
cible aussi.