我正在研究一个使用Firebase进行分析,崩溃解析和远程配置获取的iOS项目。对于依赖关系管理,我使用cocoapods,并且项目中的Firebase当前版本是最新版本-6.22.0
。
这里的问题是,在配置Firebase的代码行(ObjC-> [FIRApp configure];
)上的每次新启动时,应用程序都会崩溃。我已经看到了一些类似的帖子,但是除非我丢失了某些内容,否则它们对我来说都无济于事。
项目结构的一部分如下图所示。红色表示主要目标和应用程序的主要xcodeproj
文件。蓝色表示自定义框架的xcodeproj
文件,其中包含帮助程序,其中包括FirebaseAnalytics
包装程序,用于分析日志记录,这意味着它具有依赖性pod Firebase/Analytics
。此自定义框架用于标有红色的主应用程序目标。 (在pod install
之后,我总是打开xcworkspace
,所以它在xcworkspace
中。)
以下是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文档中所示。
此外,我已经按照Google文档的说明在项目中添加了GoogleService-Info.plist
文件。
但是该应用程序始终在didFinishLaunchingWithOptions
的{{1}}方法中调用的Firebase配置上崩溃。当我在卡住的跟踪中更深入地输入时,我在Firebase库中用红色矩形标记的AppDelegate
代码行上崩溃了:
在Xcode控制台中此崩溃的异常消息是:
364th
这里可能是什么问题?感谢您的帮助和解答。
p.s。对不起,很长的帖子。
答案 0 :(得分:3)
回答我自己的问题。我基本上通过从Firebase/Core pod
中的每个项目/目标中删除Podfile
并添加了与主应用程序目标相关的所有Firebase包括Firebase/Analytics pod
(这意味着从其他所有项目/目标)。
运行pod install
后,我将所有使用FirebaseAnalytics的文件从自定义框架移至主项目(目标)。现在一切正常,调用[FIRApp configure];
不会使应用程序崩溃。
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