【发布时间】:2015-01-18 00:33:09
【问题描述】:
我遇到了以下问题中描述的错误:
Published Android apk gives error "Package file was not signed correctly"
Some (but not all) users receive "Package file was not signed correctly" when downloading my app from Google Play
具体来说,当一些用户尝试下载我的 Google Play 应用时,他们会收到错误消息,而其他人则不会。
我的问题是:如何在提交之前检测问题是否会发生?
当我跑步时,它的价值是什么
jarsigner -verify -verbose -certs myapk.apk
我看到如下内容:
86226 11 月 9 日星期日 10:34:54 EET 2014 META-INF/MANIFEST.MF X.509, //[个人资料省略] [证书有效期为 8/20/14 8:04 AM 到 1/5/42 上午 7:04] [CertPath 未验证:路径不与 任何信任锚] // 数百个类似上面的条目, 然后:jar 验证。
警告:此 jar 包含其证书链不是 验证。此 jar 包含不包含 时间戳。如果没有时间戳,用户可能无法验证这一点 签名者证书过期日期 (2042-01-05) 之后的 jar 或 在任何未来的撤销日期之后。
【问题讨论】:
-
您使用哪个 IDE?您如何构建项目?你有什么特别的图书馆吗?
-
您确定使用了相同的密钥库和别名吗?这些用户是否也从 Playstore 或其他商店或手动下载了以前的版本?如果你有两个版本的apk,你可以比较他们的MD5,看看keystores是否有错误
-
我的 Mac 上的 Xamarin Studio。当我通过项目菜单 > 发布发布时出现问题。当我使用 jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore myKeystore myAPK keystoreAlias 登录终端时,它不会发生。但我真的很想能够测试一个签名的 apk 看看它是否好。
-
@William Jockusch,已尝试(不是 Mac,在带有 java 8 的 Windows 7 上)通过终端使用您的 SHA1withRSA - 没有时间戳的相同警告(在阅读您的帖子之前,我已经尝试了 MD5withRSA 时间戳警告结果)。 Google 希望 Android 开发者使用 Mac?或者,Mac 的 java 7 jarsigner 与 Win 的 java 6 是旧的相同的无警告功能?
标签: android apk code-signing