web-dev-qa-db-fra.com

Xcode 5.0.2 dyld: bibliothèque non chargée: @ rpath/XCTest.framework/Versions/A/XCTest

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?

28
user637338

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'

23
Robert Wagstaff

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.

16
JoePasq

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.

7
Chris Hanson

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
6
Leszek Zarna

Voici comment j'ai résolu le problème: 

  1. Accédez aux "Paramètres de construction" du projet. 
  2. Recherche de "chemins de recherche runpath" 
  3. Entrez le chemin suivant dans la colonne sous le nom du produit: /Applications/Xcode.app/Contents/Developer/Library/Frameworks/ 
4
user637338

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!

2
Rogare

J'ai résolu ce problème de cette façon ... J'ai modifié le schéma, dans l'onglet "Construire", cochez "Exécuter".

 enter image description here

1
Hot'n'Young

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" ---... 

1
Ashok Natarajan

Juste pour ceux qui ont eu le même problème:

Vérifiez dans le menu latéral droit auquel doit ressembler à cela:

 Should be

Et n'a pas à ressembler à ça:

 Shouldn't be

0
Eironeia

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
0
Ted

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.

0
William Hu