美文网首页
react-native的ios项目添加FireBase的Cra

react-native的ios项目添加FireBase的Cra

作者: sunny635533 | 来源:发表于2023-02-02 17:18 被阅读0次

    为了方便开发及时解决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相关的库。

    image.png
    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/ 查看捕捉的奔溃信息。

    相关文章

      网友评论

          本文标题:react-native的ios项目添加FireBase的Cra

          本文链接:https://www.haomeiwen.com/subject/lhfghdtx.html