android - Crashlytics 测试版:升级 apk 不同的签名
问题描述
我正在尝试使用 Crashlytics 测试版,但每次我尝试安装(通过 Beta 版应用程序)时,我都会收到“未安装应用程序”
在我的设备中,我从 Play 商店安装了 1.0.0 对代码进行了一些更改后,我想发布 1.0.1,所以我使用与商店中的 apk (1.0.0) 生成的相同的发布密钥生成了新的 apk。
而且我一遍又一遍地收到“未安装应用程序”。
我下载了通过 ADB 安装的 apk (1.0.0),然后我尝试安装最新的 apk (1.0.1) 并获得:
INSTALL_FAILED_UPDATE_INCOMPATIBLE:包 com.xyx.abcd 签名与之前安装的版本不匹配;无视!
怎么会这样???谢谢您的帮助
解决方案
您无法通过 Google Play apk 安装由 AS 构建的 apk,因为它们始终具有不同的签名。当您将 apk 上传到 Google Play 时,Google 会使用您提供的原始应用签名密钥重新签署 APK,并将您的应用交付给用户。您可以在这里阅读:https ://support.google.com/googleplay/android-developer/answer/7384423?hl=en
因此,要测试更新,您需要使用发布密钥的 apk v1.0.0(只需使用 AS 生成它)和新的 v1.0.1 也由 AS 生成和签名。这两个 apk 将具有相同的签名,但是当您将 v1.0.1 apk 上传到市场时,它也会被重新签名。
推荐阅读
- javascript - 如何添加条件来比较两个数组并更改匹配数组的值
- c - 正确的算法但错误的实现?
- php - 如何使用 WP REST API 创建终极会员用户
- python-3.x - 如何使 jit 与集合模块一起使用?
- c++ - 当我不添加/删除键时,我可以并行使用 std::map 吗?
- javascript - 为什么我的函数在工作和非 Javascript 之间交替
- java - 如何返回存储在此方法中的 2 ArrayList,而不是仅将其打印在 void 中?
- php - 更新到 MacOS Catalina 后无法使用 PHPIZE
- laravel - laravel elquent 关系的问题
- spring-cloud-stream - spring cloud dataflow on Kubernetes 部署错误