Je ne peux pas exécuter mon scénario de test à cause des erreurs suivantes:
Essayez de chercher et de résoudre depuis deux jours, mais vous n’avez pas pu résoudre ce problème, veuillez vous aider.
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 en tant que gestionnaire de dépendance. J'ai eu 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 aussi 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:
Après cela, lancez pod deintegrate && pod install
puis le problème disparaîtra . Probablement pour les projets avec plus de dépendances (comme ici ) vous devez utiliser une autre solution.
Je devais ajouter l'emplacement de mes infrastructures dans Chemin de recherche Runpath sous cibles> mytestTarget> Paramètres de construction> Chemin de recherche Runpath
Vérifiez que la cible de déploiement dans les paramètres de construction de votre cible UITest est identique à celle de l'application hôte que vous essayez de tester. Dans mon cas, j’ai ajouté la cible UITesting ultérieurement, et elle l’a créée avec une cible de déploiement par défaut, iOS 12. Si vous essayez ensuite d’exécuter UITest sur iOS inférieur à 12, l’erreur mentionnée dans la question m’a été renvoyée.
C'est parce que vos modules s'appliquent uniquement à votre cible Framework et non à ceux de test. Ajoutez la cible de tests à votre podfile.
Exemple :
target 'MyFramework' do
use_frameworks!
pod 'Alamofire', '~> 4.5'
end
target 'MyFrameworkTests' do
use_frameworks!
pod 'Alamofire', '~> 4.5'
end
Le passage au système de construction hérité a résolu ce problème avec Xcode 10.
Mon problème a été résolu en suivant les étapes suivantes: 1) supprimez la cible UITests du fichier pod. Initialement, le fichier pod contenait les informations suivantes:
target 'XUITests' do
inherit! :search_paths
end
2) Désintégration des gousses (avec désintégration des gousses)
3) Installer les pods (avec pod install)
4) Nettoyez votre projet et lancez le projet ou votre UITest
] 3
J'ai pu résoudre ce problème en suivant la réponse de Roman Podymov puis en exécutant pod deintegrate
puis pod install