Firebase Crashlytics集成再踩坑

1、当前Crashlytics 版本

根据官网的介绍,之前旧的Fabric SDK即将废弃,所以需要更新新的Firebase Crashlytics SDK。

注意:Fabric SDK 现已弃用,但在 2020 年 11 月 15 日之前仍会继续报告您的应用的崩溃情况。从 2020 年 11 月 15 日开始,Fabric SDK 和旧版 Firebase Crashlytics SDK 将停止发送您的应用的崩溃报告。如需继续在 Firebase 控制台中获取崩溃报告,请务必将 Firebase Crashlytics SDK 升级到 17.0.0 及更高版本(Android 版)、4.0.0 及更高版本(iOS 版)和 6.15.0 及更高版本(Unity 版)。

所有我这次更新后采用的版本是17.1.0(文章拖了很久了,刚开始做的时候最新版就是17.1.0):

api 'com.google.firebase:firebase-crashlytics:17.1.0' 

基本的集成步骤官网已经写的很详细了,所以直接参考官网集成地址即可。
注意:中文版可能有问题,请直接参考英文版严格执行所有集成步骤。

2、打Release包任务失败

当你集成完毕后,debug模式下的编译运行完全正常,然而但你要打release包的时候此时会出现错误,日志类似如下:

* What went wrong:
Execution failed for task ':app:uploadCrashlyticsMappingFileXXXRelease'.
> org.apache.http.conn.HttpHostConnectException: Connect to firebasecrashlyticssymbols.googleapis.com:443 [firebasecrashlyticssymbols.googleapis.com/172.217.160.74] failed: Connection timed out: connect

这是因为打release包的时候,Firebase Crashlytics SDK需要将项目混淆后的Mapping等文件上传到Google的服务器,也就是app模块的uploadCrashlyticsMappingFileXXXRelease这个task,然后出现崩溃后我们可以直接在线上拿到正常的崩溃日志,而不是混淆后的日志。

然而问题就出在上传Mapping文件到Google服务器这一步,这里你就必须要科学上网了。

然而当你开启科学上网的软件后,如果不在项目中设置相应的代理信息,编译还是会出错,所以我们还需要在项目的gradle.properties中进行相应的设置:

systemProp.https.proxyHost=xxx.xxx.xxx.xxx
systemProp.https.proxyPort=xxxx

proxyHost:代理的主机的地址,如果是你自己电脑开的科学上网软件,那么可以填写127.0.0.1;
proxyPort:代理的端口地址,一般你的科学上网软件开启之后你可以去软件的设置中查看下它的代理端口是多少然后填写到这里就可以了;

3、总结

所以以上就是问题的原因及一个解决办法。
但是有的同学说了,我们都是在内网服务器上部署Jenkins然后自动打包的,那我们要在打包服务器上也这么搞么?一般不建议这么搞,因为服务器上搞个科学上网还是很容易被封(前车之鉴了)的吧。所以要么服务器直接部署在海外,然后又有同学问了,我们代码和构件仓库都在内网啊,哈哈哈哈,问的好,找运维同学帮忙吧。
好了,简单说下我们的方式吧。目前我们是部署在了内网,因为内网的各种优势就不用说了吧,在项目app模块的build.gradle文件中直接关闭上面出现问题的Task:

gradle.taskGraph.whenReady {
    tasks.each { task ->
        if (task.name.contains("uploadCrashlyticsMappingFile")) {
            task.enabled = false
        }
    }
}

这样的话,自动给测试人员打release包的时候,都不需要和Google的服务器打交道了。但是问题就是,你所有测试人员的崩溃日志就全是混淆后的日志了,无法直视。

然后打正式生产环境的release包的话,建议还是按照一开始的办法,老老实实自己科学上网然后项目中设置代理参数进行打包。

总之我就小声BB下,希望Google大大考虑下各国国情,不然这也太麻烦了,害。

最后如果大家有什么其他好的办法,请一定不吝赐教。

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值