刚接触flutter,边学边做。其实遇到的是两个坑,但看起来像是同个问题引起的,多么痛的领悟,基础不牢、解决问题流程不对太耽误时间了。
打包APK后报无法加载友盟arr库
有篇帖子说是启用压缩导致的,去掉压缩后就好了,混淆还是要的,阿里百川SDK必需要的。虽然问题通过了,后面抽空还是要仔细研究下。
阿里百川SDK无法初始化
刚开始一直认为是跟友盟是同一个原因引起的(流汗),查看Log发现是阿里百川安全图片的问题,然后去仔细查看官方文档,才猛然发现Release版本签名后没有重新上传APK(想狠狠抽自己),然后重新上传APK下载安全图片就好了。
这里贴一下阿里百川安全图片的说明:
什么是安全图片
- 百川平台将从上传的包内提取签名,包名等信息,并加密存储到下载 SDK 中的安全图片。SDK 启动时会校验当前 apk 和图片中的签名信息,以避免发布的安装包被恶意篡改。另外,请注意如下事项:
- 1)因为只提取安装包的签名以及包名信息,所以上传时对安装包的内容没有任何要求。
- 2)请确保后续开发中用于 apk 签名的 keystore 和上传 apk 所使用的保持一致。
- 3)如开发过程中或最终发布应用时需要切换其他 keystore,请上传使用新 keystore 签名的 apk 重新生成 SDK,并拷贝下载 SDK 中新的安全图片 ( res/drawable/yw_1222.jpg) 并替换掉当前开发工程中相同位置的同名文件。
使用须知
- 安全图片是使用应用的appkey和其他相关信息(android还需要提供keystore签名的apk文件)一起加密生成的1像素点的加密图片。
- 使用时请将图片改名为yw_1222.jpg,只需根据iOS和android放在对应的目录下,iOS:只要把安全图片放到工程目录底下即可; Android:需要把安全图片放到/res/drawable下。
- 调用时,android客户端SDK会校验安全图片中加密的keystore和当前程序中的keystore是否一致,如果不一致初始化会失败。iOS客户端SDK会校验校验安全图片中加密的appkey信息和当前程序中的URL Types里面填写的appkey应用是否一致,若不一致也会报错。
参考文章:
阿里百川Android接入文档:https://baichuan.taobao.com/docs/doc.htm?spm=a3c0d.7629140.0.0.2c3dbe48u6LZaZ&treeId=129&articleId=118400&docType=1
debug可用,release包初始化失败:https://ask.csdn.net/questions/5984543
记录介入阿里百川的坑:https://blog.csdn.net/qq_33216944/article/details/105653910