86 votes

Le bundle UITests n'a pas pu être chargé car il est endommagé ou il lui manque des ressources nécessaires. Essayez de réinstaller le bundle

Je ne peux pas exécuter mon scénario de test en raison des erreurs suivantes :

  • Le paquet "UITests" n'a pas pu être chargé car il est endommagé ou les ressources nécessaires manquent. Essayez de réinstaller le bundle.
  • Bibliothèque non chargée : @rpath/Alamofire.framework/Alamofire.
  • Motif : image non trouvée

J'ai essayé de chercher et de résoudre depuis deux jours mais je n'ai pas réussi à résoudre ce problème. Quelqu'un peut-il m'aider ?

32voto

Roman Podymov Points 1097

J'ai pu reproduire ce problème avec le projet généré par Xcode 10.1. J'ai utilisé Swift 4.2 et CocoaPods 1.10.0 comme gestionnaire de dépendances. J'avais le Podfile suivant :

# Uncomment the next line to define a global platform for your project
platform :ios, '10.0'

target 'MyApp' do
  # Comment the next line if you're not using Swift and don't want to use dynamic frameworks
  use_frameworks!

  # Pods for MyApp
  pod 'Alamofire', '4.8.1'

  target 'MyAppTests' do
    inherit! :search_paths
    # Pods for testing
  end

  target 'MyAppUITests' do
    inherit! :search_paths
    # Pods for testing
  end

end

Puis j'ai enlevé use_frameworks! voir ce lien pour plus de détails :

# Uncomment the next line to define a global platform for your project
platform :ios, '10.0'

target 'MyApp' do

  # Pods for MyApp
  pod 'Alamofire', '4.8.1'    

  target 'MyAppTests' do
    inherit! :search_paths
    # Pods for testing
  end

  target 'MyAppUITests' do
    inherit! :search_paths
    # Pods for testing
  end

end

J'ai également reçu des avertissements comme celui-ci :

[!] The `MyAppUITests [Debug]` target overrides the `ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES` build setting defined in `Pods/Target Support Files/Pods-MyApp-MyAppUITests/Pods-MyApp-MyAppUITests.debug.xcconfig'. This can lead to problems with the CocoaPods installation
    - Use the `$(inherited)` flag, or
    - Remove the build settings from the target.

C'est pourquoi j'ai supprimé cette ligne des paramètres de construction de MyAppUITests :

MyAppUITests build settings

Après cette course pod deintegrate && pod install et le problème a disparu. Probablement que pour les projets avec plus de dépendances (comme aquí ), vous devez utiliser une autre solution.

0 votes

S'il y avait plusieurs pods, quelle serait la syntaxe ?

0 votes

@RomanPodymov J'ai le même problème en utilisant CocoaPods 1.5.3 Voici mon fichier pod, # Uncomment the next line to define a global platform for your project platform :ios, '9.0' target 'MyApp' do # Comment the next line if you're not using Swift and don't want to use dynamic frameworks use_frameworks! # Pods for MyApp pod 'SwiftMessages' pod 'IQKeyboardManager' pod 'AlamofireImage' . pod 'Alamofire' target 'MyAppUITests' do inherit! :search_paths # Pods for testing end end

1 votes

Bonjour @JibranSiddiQui. Essayez d'enlever inherit! :search_paths de target 'MyAppUITests' . Ou devez-vous le garder ?

23voto

Anthony Points 116

C'est parce que vos pods ne s'appliquent qu'à votre cible Framework et pas à la cible tests. Ajoutez la cible tests à votre podfile.

Exemple :

target 'MyFramework' do
  use_frameworks!
  pod 'Alamofire', '~> 4.5'
end

target 'MyFrameworkTests' do
  use_frameworks!
  pod 'Alamofire', '~> 4.5'
end

3 votes

En plus d'utiliser cette solution, j'ai également constaté qu'au moins un fichier source visible par la cible de vos tests doit avoir import <Pod> (dans ce cas, import Alamofire ) afin de corriger l'erreur.

15voto

Samuël Points 71

Vérifiez que la cible de déploiement dans les paramètres de construction de votre cible UITest est la même que l'application hôte que vous essayez de tester. Dans mon cas, j'ai ajouté la cible UITesting plus tard, et elle a été créée avec une cible de déploiement par défaut iOS 12. Si vous essayez ensuite d'exécuter le UITest sur un iOS inférieur à 12, il m'a donné l'erreur mentionnée dans la question.

9voto

Martin O'Shea Points 352

J'ai dû ajouter l'emplacement de mes frameworks au chemin de recherche Runpath sous targets>mytestTarget>Build Settings>Runpath Search Path.

1voto

user2273146 Points 456

1

2 ! 3 ] 3

  1. Aller aux phases de construction
  2. Ouvrez Copy Pods Resources et copiez le chemin
  3. Collez le chemin que vous avez copié à partir de Copier les ressources des pods et changez le nom des ressources avec les cadres.
  4. Nettoyer et construire
  5. Exécutez votre fichier UITestsFile

2 votes

La question ne mentionne pas qu'ils utilisent des Cocoapodes.

0 votes

Ce qui s'est passé quand tu as utilisé Carthage, mauvaise réponse.

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