Firebase 调研"/>
Firebase 调研
介绍视频
费用
(eee 图片挂了)
崩溃分析是完全免费的
接入
将Firebase添加到App中
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-uvyO227R-1618198940705)(media/16167457880417/16167461702939.jpg)]
按照上面的流程走完 添加完pod之后就可以到控制台查看相关的内容
使用
-
在控制台关联应用
-
添加到应用
pod 'Firebase/Crashlytics' # Recommended: Add the Firebase pod for Google Analytics pod 'Firebase/Analytics'------ pod install
@import Firebase; // Use the Firebase library to configure APIs. [FIRApp configure];
-
初始化
添加sh# Firebase Crashlytics run & upload DYSM# 运行FirebaseCrashlytics "${PODS_ROOT}/FirebaseCrashlytics/run"# DEBUG & ADHOC if [ "${CONFIGURATION}" == "DEUBG" || "${CONFIGURATION}" == "ADHOC" ]; then # 上传DSYM "${PODS_ROOT}/FirebaseCrashlytics/upload-symbols" -gsp "${PROJECT_DIR}/CoachAI/GoogleService-Info-debug.plist" -p ios "${DWARF_DSYM_FOLDER_PATH}/${DWARF_DSYM_FILE_NAME}" fi
问题
- 配置的过程中需要添加配置文件到项目的根目录
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" ".0.dtd">
<plist version="1.0">
<dict><key>CLIENT_ID</key><string>237864503345-281aqr0i672hb0o98jbh3rvn2ibir2kf.apps.googleusercontent</string><key>REVERSED_CLIENT_ID</key><string>com.googleusercontent.apps.237864503345-281aqr0i672hb0o98jbh3rvn2ibir2kf</string><key>API_KEY</key><string>AIzaSyD9uZBGsdtg7tODHfTCKjpGUSaIruCPBPE</string><key>GCM_SENDER_ID</key><string>237864503345</string><key>PLIST_VERSION</key><string>1</string><key>BUNDLE_ID</key><string>com.CoachView.CoachAI.lilele</string><key>PROJECT_ID</key><string>coachai-dev</string><key>STORAGE_BUCKET</key><string>coachai-dev.appspot</string><key>IS_ADS_ENABLED</key><false></false><key>IS_ANALYTICS_ENABLED</key><false></false><key>IS_APPINVITE_ENABLED</key><true></true><key>IS_GCM_ENABLED</key><true></true><key>IS_SIGNIN_ENABLED</key><true></true><key>GOOGLE_APP_ID</key><string>1:237864503345:ios:9426e88567e6b6783aed10</string>
</dict>
</plist>
在不同的环境(release adhoc)下接入Firebase的话需要不同的key 需要动态的改变这个Xml的API_KEY
参数
- 创建项目需要的BundleId 并且需要bundle不能重复
解决
- 通过预编译头参数和xcconfig文件配置 动态的修改当前的xml文件
- 也可以通过一的方式解决
最终通过
在对个项目下创建不同环境下的应用 可以使用同一个bundleid
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-hCPGp2lh-1618198940707)(media/16167457880417/16169022711643.jpg)]
在初始化的时候通过option读取不同的plist文件
在上传dysm的时候通过sh脚本区分不同的plist而文件
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-GGrw2BCq-1618198940708)(media/16167457880417/16169024271159.jpg)]
注意事项
-
CocoaPod 版本
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-9xK9Q950-1618198940710)(media/16167457880417/16167470962526.jpg)] -
因为不是实时上报的我们调试的时候可以通过提供的debugView能力进行多环境的测试
参考链接 打开debugview
总结
以下为具体操作步骤 :
- 在Firebase开发者账号中添加配置项目;
- 点击Crashlytics选中对应项目来开通Crashlytics服务;
- 在项目设置里下载GoogleService-Info.plist文件添加到Xcode项目中去;
- 在项目中添加pod ‘Firebase/Analytics’ 、pod ‘Firebase/Crashlytics’,pod install
- 在AppDelegate中的didFinishLaunchingWithOptions中添加FirebaseApp.configure()
- 添加配置文件根据预编译条件做区分
#if defined (DEBUG) || defined (ADHOC) [Bugly startWithAppId:@"96d46f3976"]; filePath = [[NSBundle mainBundle] pathForResource:@"GoogleService-Info-debug" ofType:@"plist"]; #else filePath = [[NSBundle mainBundle] pathForResource:@"GoogleService-Info" ofType:@"plist"]; [Bugly startWithAppId:@"70f6b8df87"]; #endif
- 添加配置文件根据预编译条件做区分
- 对Xcode项目配置脚本,selecte ProjectTarget -> BuildPhases -> + 添加 New Run Script
- 同样也是通过预编译条件做区分
done
参考链接
参考链接
firebase 多环境配置
参考链接
更多推荐
Firebase 调研
发布评论