FirebaseApp.configure () вылетает при запуске приложения - PullRequest
0 голосов
/ 14 апреля 2020

Я работаю над проектом iOS, который использует Firebase для аналитики, сбоев и удаленного извлечения конфигурации. Для управления зависимостями я использую cocoapods, и текущая версия Firebase в проекте самая последняя - 6.22.0.

Проблема здесь в том, что приложение вылетает при каждом новом запуске в строке кода, которая настраивает Firebase (Obj C -> [FIRApp configure];). Я уже видел несколько подобных постов, но ни один из них не помогает в моем случае, если я что-то упустил.

Часть структуры проекта показана на рисунке ниже. Красный цвет указывает основной xcodeproj файл основной цели и приложения. Голубым цветом обозначен файл xcodeproj пользовательской платформы, в котором содержатся помощники, включая оболочку FirebaseAnalytics для ведения журнала аналитики, что означает, что она имеет зависимость pod Firebase/Analytics. Этот пользовательский каркас используется в основной цели приложения, отмеченной красным цветом. (После pod install я всегда открываю xcworkspace, так что это в xcworkspace).

enter image description here

Ниже определены блоки для каждого проекта / цель в Podfile.

target 'TheApp' do
    platform :ios, '11.0'
    project 'TheApp/TheApp.xcodeproj'
    use_frameworks!
    pod 'Firebase/Auth'
    pod 'Firebase/Core'
    pod 'Firebase/Messaging'
    pod 'Firebase/RemoteConfig'
end

target 'TheCustomFramework' do
    platform :ios, '11.0'
    project 'TheCustomFramework/TheCustomFramework.xcodeproj'
    use_frameworks!
    pod 'Firebase/Analytics'
end

Я добавил метод настройки Firebase в делегат приложения, как это показано в документации Google.

enter image description here

Также я Добавлен GoogleService-Info.plist файл в проект, как указано в документации Google.

enter image description here

Но приложение продолжает падать в конфигурации Firebase, вызываемой в методе didFinishLaunchingWithOptions в AppDelegate. Когда я вхожу глубже в застрявшую трассировку, я получаю cra sh в строке кода 364th в библиотеке Firebase, отмеченной красным прямоугольником:

enter image description here

сообщение об исключении для этого cra sh в консоли Xcode:

Terminating app due to uncaught exception 'com.firebase.installations', reason: 'The default FirebaseApp instance must be configured before the defaultFirebaseApp instance can be initialized. One way to ensure that is to call `[FIRApp configure];` (`FirebaseApp.configure()` in Swift) in the App Delegate's `application:didFinishLaunchingWithOptions:` (`application(_:didFinishLaunchingWithOptions:)` in Swift).'

В чем здесь может быть проблема? Спасибо за вашу помощь и ответы.

ps извините за длинный пост.

1 Ответ

0 голосов
/ 16 апреля 2020

Чтобы ответить на мой собственный вопрос. Я решил эту проблему в основном, удалив Firebase/Core pod из каждого проекта / цели в Podfile и добавив все Firebase, относящееся к основной цели приложения, включая Firebase/Analytics pod (что означает удаление его из любого другого проекта / цели).

После запуска pod install я переместил все файлы, которые использовали FirebaseAnalytics, из пользовательской среды в основной проект (цель). Теперь все работает, как ожидалось, и вызов [FIRApp configure]; не вызывает sh приложения.

Podfile теперь выглядит примерно так:

target 'TheApp' do
    platform :ios, '11.0'
    project 'TheApp/TheApp.xcodeproj'
    use_frameworks!
    pod 'Firebase/Analytics'
    pod 'Firebase/Auth'
    pod 'Firebase/Messaging'
    pod 'Firebase/RemoteConfig'
end

target 'TheCustomFramework' do
    platform :ios, '11.0'
    project 'TheCustomFramework/TheCustomFramework.xcodeproj'
    use_frameworks!
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...