Cause Probable
C'est probable que se produise en raison de la façon dont votre Pod dépendances sont mis en place. Voyez-vous des avertissements à partir de Xcode sur de multiples implémentations définis dans les deux classes, tels que:
objc[54869]: Class FIRApp is implemented in both /Users/hli/Library/Developer/CoreSimulator/Devices/7766B001-8A5F-43B6-8860-5D36E8DC452C/data/Containers/Bundle/Application/8A18B716-D1D2-4110-83E2-9AE577A034CD/FirebaseDemo.app/FirebaseDemo (0x10d306d30) and /Users/hli/Library/Developer/Xcode/DerivedData/FirebaseDemo-ddfdueufgmkxwzameiwbuhnokgax/Build/Products/Debug-iphonesimulator/FirebaseDemo.app/PlugIns/FirebaseDemoTests.xctest/FirebaseDemoTests (0x11df8cbb0). One of the two will be used. Which one is undefined.
Si oui, cela signifie que vous avez probablement besoin d'ajuster votre pod dépendances de configuration. Depuis un XCTest la cible qui apporte également dans l'application hôte cible, il est possible d'obtenir plusieurs importations de l'objet même. Dans ce cas, FIRApp était initialisation de l'ID de l'Instance, mais il était à l'origine de l'ID d'Instance de vérifier avec les autres FIRApp, qui disait que ce n'était pas configurée. C'est ce qui explique pourquoi il plante en disant qu'il ne peut pas trouver l'application qui initialisé il.
Voir morganchen12@'s réponse dans Github pour voir un exemple d'un bon Podfile.
Réponse Originale À Cette Question Ci-Dessous:
Donc, ce qui se passe peut-être deux raisons:
- Firebase ne trouvez pas votre
GoogleService-Info.plist
dans vos tests unitaires d'accueil de l'application bundle, ou
- L'
GoogleService-Info.plist
le fichier est absent de l' GCM_SENDER_ID
- clés ou a une valeur vide en elle.
Nous pouvons éliminer (2) assez facilement - peut inspecter votre GoogleService-Info.plist
le fichier pour voir si elle est valide à la recherche GCM_SENDER_ID
(il sera un tas de chiffres, comme 3252652634).
Je vais essayer de comprendre pourquoi l' GoogleService-Info.plist
peuvent apparemment être trouvés avec 3.15.x vs 3.16.0 et plus tard.
En outre, comme @markshiz dit, vous ne pouvez pas réellement envie Firebase pour être le démarrage lors de votre test unitaire pour votre application. Vous pouvez mettre votre FIRApp.configure()
appel derrière un if, en vérifiant si l'application est en cours d'exécution comme une unité de test.
Pour également aider à déboguer cela, pourriez-vous exécuter votre application de test avec la variable d'environnement -FIRDebugEnabled
ensemble? La sortie de ce serait très utile.