为了方便开发及时解决release版本的问题,项目需要引入firebase的Crashlytics异常收集库,功能类似友盟SDK。主要是讲述ios项目添加步骤。
项目需要先yarn install 两个新库到RN项目:
@react-native-firebase/app
@react-native-firebase/crashlytics
1、首先需要创建firebase平台账号,https://console.firebase.google.com/
然后再添加iOS应用。注意,应用添加后,不需要按firebase官方SDK流程去单独集成firebase相关的库。
2、通过 https://rnfirebase.io/,用他们的@react-native-firebase/app第三方库集成firebase相关的库。
android的集成,可以完全按照这个网址的流程来,但是ios有些不同。
ios加入GoogleService-Info.plist文件和[FIRApp configure] 后,pod文件的修改如果添加“use_frameworks!”,会出现很多错误和冲突,无法得到解决,即使查看很多资料也是没有更好的解决方案。
所以:在podfile文件内,坚决不能添加“ use_frameworks! ”
替代方案是:
(1)podfile文件顶部加入,指定firebase库版本
$FirebaseSDKVersion = '10.3.0'
(2)手动指定firebase的部分库为静态引用
pod 'Firebase', :modular_headers => true
pod 'FirebaseCoreInternal', :modular_headers => true
pod 'GoogleUtilities', :modular_headers => true
pod 'FirebaseCore', :modular_headers => true
3、ios目录执行:pod install --repo-update
完美运行起来!
4、集成FireBase的Crashlytics库,按照https://rnfirebase.io/crashlytics/usage 流程来就好了
5、react-native 根项目下添加firebase.json文件,内容如下:
{
"react-native": {
"crashlytics_debug_enabled": true,
"crashlytics_disable_auto_disabler": true,
"crashlytics_auto_collection_enabled": true,
"crashlytics_is_error_generation_on_js_crash_enabled": true,
"crashlytics_javascript_exception_handler_chaining_enabled": true
}
}
6、用xcode运行debug模式下的app,firebase是不会把debug模式下的error上传到平台上。
参考网址:https://stackoverflow.com/questions/54464214/react-native-firebase-crashlytics-not-showing-up-on-firebase-dashboard/56021059#56021059
https://github.com/invertase/react-native-firebase/issues?page=3&q=is%3Aissue+crashlytics+is%3Aclosed
所以app跑起来后,关闭,再重新打开app,点击奔溃的代码方法,5分钟后再去firebase平台上刷新查看异常。或者直接在release下运行app。
参考异常代码:
import crashlytics from '@react-native-firebase/crashlytics';
//crashlytics提供的异常奔溃方法
crashlytics().crash()
//没有定义的module方法
NativeModules.common.test();
最后在https://console.firebase.google.com/ 查看捕捉的奔溃信息。
网友评论