web-dev-qa-db-fra.com

La série de tests n'a pas pu être chargée car une erreur imprévue

Récemment, j'ai commencé à écrire un scénario de test pour une ancienne bibliothèque statique. J'ai chargé la bibliothèque dans Xcode 5. La bibliothèque statique étant ancienne, je dois ajouter manuellement TestProject avec Test Target. 

Lorsque j'essaie "Produit -> Test", il lance l'émulateur et la console affiche l'erreur suivante

La série de tests dans /xxx/xxx/xxx/StaticLibTest.xctest n'a pas pu être Chargée, car une erreur imprévue s'est produite: Erreur Domaine = NSCocoaErrorDomain Code = 3587 "Le lot" StaticLibTest.xctest " n'a pas pu être chargé car des ressources endommagées ou manquantes sont nécessaires. " (dlopen_preflight (/xxx/xxxx/xxx/Debug-iphonesimulator/StaticLibTest.xctest/StaticLibTests): aucune image appropriée trouvée.

Je ne sais pas pourquoi cette erreur survient. 

Toute aide pour indiquer la bonne direction sera vraiment appréciée. 

19
Brijesh Thakur

J'ai trouvé la réponse par moi-même. 

Vos paramètres de construction -> Les architectures doivent être identiques pour la bibliothèque et le projet de test.

Architectures -> Architectures = Architectures de Standrad (armv7, armv7s, Arm64) $ (ARCHS_STANDARD)

La liaison de votre projet test -> Le type Mach-O devrait être groupé

Liaison -> Type Mach-O = Bundle

Construire et exécuter des tests. C'est tout

13
Brijesh Thakur

Si d'autres lecteurs rencontrent cette erreur et que vous utilisez Carthage pour ajouter un cadre, assurez-vous que la phase Copy Files se fait avec Destination: Frameworks

 Adding frameworks from Carthage

Si vous ajoutez accidentellement les infrastructures à une phase Copy Files avec une cible différente (autre que Frameworks) ou Copy Bundle Resources, le message d'erreur d'ensemble endommagé/non valide sera également généré.

24
odlp

J'ai pu résoudre ce problème en définissant l'application hôte pour la cible de test:  Host Application

20
Menno

J'avais un problème similaire. Pour moi, le problème était un framework de tests unitaires qui était un framework dynamique, mais non copié sur le bundle xctest.

La solution consistait à ajouter une phase "Copier les fichiers" à ma cible de test unitaire, à définir sa destination sur "Frameworks" et à ajouter mon framework en tant que fichier d'entrée.

19
Lukas Spieß

Pour moi, ce problème était dû au fait que le paramètre de construction "Cible de déploiement iOS" était différent dans ma cible de test de mon application principale. Une fois que je leur ai fait la même chose le problème est parti.

9
Liron Yahdav

Vérifiez si vous avez oublié d’ajouter votre cible de test à votre Podfile:

target 'MyProject' do

  # Add test target
  target 'MyProjectTests' do
    inherit! :search_paths
  end

  pod 'SomePodLibrary'

end
2
funct7

Le fait de désactiver la configuration du pod pour la cible de test a résolu le problème, car cela avait quelque chose à voir avec la configuration du pod qui le gênait.

1
Pellet

Pour moi, nous venions d'activer le droit à CloudKit. Pour une raison quelconque, la construction a éclaté. 

0
CommaToast

Avait un problème similaire:

FrameworkA imports FrameworkB

FrameworkA-Tests importe également FrameworkB

Le problème résolu était de supprimer (commenter) toutes les références à FrameworkB in FrameworkA-Tests , puis d'exécuter les tests une fois et de ne pas commenter les références.

FrameworkA-Tests importe maintenant FrameworkB et fonctionne correctement.

0
vauxhall