iOS 【Firebase】崩溃日志搜集

摘了:https://blog.mzying.com/index.php/archives/225/

Firebase 的崩溃日志收集功能,根据 pod 集成:

pod 'Firebase/Crashlytics'

并且在 Build Phases 中新增了自动上传符号文件的脚本:

"${PODS_ROOT}/FirebaseCrashlytics/run"

运行的时候报如下错误:

Could not get GOOGLE_APP_ID in Google Services file from build environment

项目为了区分开发环境和线上环境,在 Firebase 控制台新建了两个项目,所以项目中也会有两个配置文件:

GoogleService-Info-DEBUG.plist
GoogleService-Info-RELEASE.plist
崩溃日志收集的配置,我们可以通过代码指定配置文件:

if (线上){
fileName = @"GoogleService-Info-RELEASE.plist";
}else{
fileName = @"GoogleService-Info-DEBUG.plist";
}
NSString *googleServicePath = [[NSBundle mainBundle] pathForResource:fileName ofType:@"plist"];
FIROptions *firOptions = [[FIROptions alloc] initWithContentsOfFile:googleServicePath];
[FIRApp configureWithOptions:firOptions];

但是

自动上传符号文件的脚本 run 却无法用代码控制,它默认读取的是标准配置文件命名 GoogleService-Info.plist。所以才会有上面的报错:找不到 GOOGLE_APP_ID。幸运的是,查看脚本的帮助菜单:

sh run --help
发现可以通过 -gsp 参数指定:

-gsp, --google-service-plist The path to your app's GoogleService-Info.plist

解决

我们修改自动上传符号文件的脚本为( 替换为自己的项目名称):

if [ "{PODS_ROOT}/FirebaseCrashlytics/run" -gsp /GoogleService-Info-RELEASE.plist
else
"${PODS_ROOT}/FirebaseCrashlytics/run" -gsp /GoogleService-Info-DEBUG.plist
fi

参考:https://stackoverflow.com/questions/37615405/use-different-googleservice-info-plist-for-different-build-schemes

你可能感兴趣的:(iOS 【Firebase】崩溃日志搜集)