【问题标题】:Some (but not all) users receive "Package file was not signed correctly" when downloading my app from Google Play从 Google Play 下载我的应用程序时,一些(但不是全部)用户收到“包文件未正确签名”
【发布时间】:2014-11-06 21:51:33
【问题描述】:

我已在 Google Play 商店中提交并发布了一个应用程序。上传二进制文件时,我没有收到任何错误。现在,我收到一些(不是所有)客户的报告,他们说他们在安装我们的应用程序时遇到以下错误:

“包文件未正确签名”

但是,当我尝试自己复制此错误(使用 Nexus 7 重置为出厂设置)时,一切都很顺利。

这似乎与this 问题中描述的问题相似,但accepted answer 似乎不适用于这种情况。

已经看到了使用 JDK 6 而不是 JDK 7 的建议,但是像 this one 这样的答案让我相信这个解决方案适用于在旧版 Java 中创建密钥库的情况.此外,我担心使用旧版本的 Java 退出新版本会如何影响我们的客户,他们没有在初始安装时遇到问题。

  1. 用于签署应用程序的 JDK 版本仅对 一些 客户产生负面影响是否有意义?如果是,哪些因素可能决定问题发生在哪些设备上?
  2. 更改如何我签署二进制文件(而不是证书)会对我们为当前没有此问题的用户更新应用程序的能力产生任何负面影响
  3. 如果我用于签署 APK 的 Java 版本不是问题,还有什么可能导致这样的错误?

编辑: 所有有此问题(或没有此问题)的用户都在运行 Android 4.0 或更高版本。该应用不支持早期版本的 Android。

【问题讨论】:

    标签: android google-play jar-signing


    【解决方案1】:

    在阅读了一些内容后,我将尝试一下,您需要为 JDK7 jarsigner 明确指定算法..

    将此添加到项目的 build.xml 文件中:

    <presetdef name="signjar">
        <signjar sigalg="MD5withRSA" digestalg="SHA1" />
    </presetdef>
    

    再读一读后,它似乎是关于设备上用于摘要的默认算法,它似乎因设备而异,所有设备上可用的通用算法是上面 xml 中指定的算法.这就是为什么它在某些设备上失败,其他用户也经历过同样的事情,例如:“Package not signed correctly” appearing for some users

    这篇博文还包含一些关于 apk 签名的有趣信息:Android code signing

    我现在非常有信心,明确设置 android 指定的签名算法不会影响您已经安装的客户,我希望它会为其他客户解决您的问题。

    【讨论】:

    • 谢谢,我很感激。我在日常工作中使用很多设备。我可能会自己围绕这个区域做一些测试。如果我发现任何有用的东西,我会告诉你。
    • 您有关于这个问题的任何消息吗?我遇到了与上面 Izam 描述的完全相同的问题,如果这个解决方案有帮助会很有趣。
    • 这是我见过的 Android 碎片化最严重的失败之一。
    • 大声笑。可悲的是不是我见过的最糟糕的。
    猜你喜欢
    • 1970-01-01
    • 2015-11-02
    • 2015-01-18
    • 2019-06-24
    • 1970-01-01
    • 1970-01-01
    • 2014-01-22
    • 1970-01-01
    • 2017-11-11
    相关资源
    最近更新 更多