Firebase App Distribution:更新变全新安装,如何实现增量更新?
检查APK签名一致性
这是最核心的原因:新旧APK必须使用同一签名密钥签名。如果新包用了不同密钥(比如本地调试密钥和CI环境密钥不一致),系统会判定为完全不同的应用,只能卸载旧版再安装。
验证方式:执行命令apksigner verify --print-certs old.apk和apksigner verify --print-certs new.apk,对比输出的证书指纹,必须完全一致。确认应用包名(Application ID)完全匹配
哪怕包名差一个字符(比如多了.test后缀),系统都会当成两个独立应用。检查build.gradle(或build.gradle.kts)里的applicationId字段,新旧版本必须完全相同。核对Firebase上传配置
上传APK时,若项目已用自有密钥签名,不要勾选“启用应用签名”——否则Firebase会重新签名APK,导致签名不一致。同时确保上传的是同渠道构建包(比如都是debug渠道或同一测试release渠道),不要混传不同渠道的包。保证版本号/版本代码的连续性
新APK的versionCode必须高于旧版(这是Android允许更新的基础条件),versionName可随意,但versionCode必须递增。如果versionCode低于或等于旧版,系统会拒绝更新,只能触发全新安装。检查设备安装权限设置
部分设备的“安装未知应用”权限若限制了Firebase App Distribution来源,可能导致更新失败转而触发全新安装。确保设备允许从Firebase分发链接安装应用,且未开启“仅允许从Play商店安装”的限制。
如果以上项都排查无误仍有问题,可以尝试在Firebase控制台重新关联应用签名密钥,或清理Firebase App Distribution缓存后重新上传APK。
内容的提问来源于stack exchange,提问作者tzegian

