J'essaie d'exécuter les UItests pour mon application, mais elle se bloque dès son chargement. Voici l'erreur.
2018-09-29 16:19:49.577151+1000 xxxUITests-Runner[6007:69633] (dlopen_preflight(/Users/Acc/Library/Developer/Xcode/DerivedData/xxx-bjuwemcifadxhlhgojgfktmmades/Build/Products/Debug-iphonesimulator/xxxUITests-Runner.app/PlugIns/xxxUITests.xctest/xxxUITests): Library not loaded: @rpath/libswiftContacts.dylib
Referenced from: /Users/Acc/Library/Developer/Xcode/DerivedData/xxx-bjuwemcifadxhlhgojgfktmmades/Build/Products/Debug-iphonesimulator/xxxUITests-Runner.app/PlugIns/xxxUITests.xctest/Frameworks/MapboxGeocoder.framework/MapboxGeocoder
Reason: image not found)
J'utilise CocoaPods (1.6.0.beta.1) pour installer mes frameworks. J'utilise Xcode10 avec Swift 4.2 et IOS 12. Git est utilisé comme contrôle de version avec d'autres développeurs (il y a peut-être des conflits?).
Mon application cible fonctionne parfaitement, à la fois sur un simulateur et sur un vrai téléphone, tout comme mes tests unitaires. Mais mon objectif UITest échoue dès qu'il se lance. Ce problème se produit à la fois sur un simulateur et sur une vraie machine.
Il y a eu de nombreux articles sur la question auparavant, mais aucun ne m'a aidé jusqu'à présent. J'ai eu 2 occurrences isolées auparavant, la première fois que j'ai résolu en ajoutant des dépendances dans mon fichier pod pour l'unité UITest, et la deuxième fois en supprimant simplement ma cible et en copiant et collant les classes dans la nouvelle cible (non constructif) , mais en dernier recours). Je peux faire la même chose cette fois également, mais c'est un peu une perte de temps et je crains que cela ne se reproduise à l'avenir.
Voici ce que j'ai fait jusqu'à présent:
Nettoyer le dossier des builds Xcode et supprimer les données dérivées, IOS journaux de périphérique et dossiers de données utilisateur.
Xcode, Mac redémarré, ainsi que mon appareil et mes simulateurs, et référentiel recloné, et mise à jour et installation du pod
Avoir "toujours incorporé Swift bibliothèques standard" comme oui
Vérifié que mon application cible est correcte
Assurez-vous que le cadre offensant (MapboxGeocoder.framework) est inclus dans les cadres de pods intégrés
Donc après 5 jours, j'ai réussi à résoudre mon propre problème.
Je l'ai résolu en déplaçant ma cible UITests hors du champ d'application de mon application principale dans Podfile.
De:
target 'App' do
use_frameworks!
pods 'Firebase'
target 'AppUITests' do
pods 'Testingpod'
end
end
À:
target 'App' do
use_frameworks!
pods 'Firebase'
end
target 'AppUITests' do
pods 'Testingpod'
end
A trouvé une autre solution suggérée dans le problème des Cocoapods.
Comme mon projet est un framework, le test n'a donc pas d'application Host.
Podfile modifié
target 'framework' do
use_ frameworks!
pods my_dependencies
target 'framework_tests' do
inherit! :search_paths
end
end
À
target 'framework' do
use_ frameworks!
pods my_dependencies
target 'framework_tests'
end