【问题标题】:Is it possible to add a new signature to an existing app?是否可以向现有应用程序添加新签名?
【发布时间】:2019-03-11 02:36:50
【问题描述】:

阅读签名方案 v2 文档 here 后,我想知道是否可以向当前应用程序添加新签名。

只是为了说明我有一个带有签名密钥“A”的应用程序版本 1.0。我想发送带有签名密钥“A”和“B”的更新(2.0 版)。

文档中的这句话似乎证实了这种可能性,但我无法做到这一点。

如果找到至少一个签名者,并且每个找到的签名者都成功执行第 3 步,则验证成功。

每次我尝试在 1.0 版之上安装 2.0 版作为更新时,我都会收到以下错误消息:

失败[INSTALL_FAILED_UPDATE_INCOMPATIBLE:包(包名)签名与之前安装的版本不匹配;无视!]

【问题讨论】:

    标签: android package apk signature apksigner


    【解决方案1】:

    编辑:jarsigner 实际上可以附加签名,但签名比 apksigner 弱,所以我强烈反对这个选项。 Play 也不支持多个签名者。

    您不能使用 apksigner 添加签名。任何额外的签名操作都会删除 APK 之前的签名。但是,您可以使用 v1 和 v2 签名方案登录单个操作。这是 apksigner 与 sign 子命令一起使用时默认执行的操作。

    请注意,您不能使用 新 密钥库进行签名,您必须继续使用 相同 密钥库进行签名,您的应用更新才能在 Android 上运行。

    希望对您有所帮助。如果我能澄清一下,请告诉我。

    【讨论】:

    • 现在可以使用 v3 签名方案。我们能用它实现目标吗?
    • V3 签名有助于解决一个不同的问题:APK 使用新签名进行签名,并且还包含轮换证明,允许应用安装在使用旧密钥签名的先前版本之上
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-04
    • 2012-01-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多