我最近将我的应用程序上传到了Android市场,但是由于错误而下载时它拒绝运行
包文件未正确签名
我首先使用eclipse发布数据包,右键单击导出,创建一个密钥库然后发布,但它拒绝工作.
然后我下载了keytool和jarsigner并用它来签署我发布的升级版.但是这会产生同样的错误.
我不知道我做错了什么,因为我无法删除应用程序,我无法尝试重新开始,任何人都可以帮助我吗?
谢谢
我遇到以下问题中描述的错误问题:
发布的Android apk给出错误"包文件未正确
签名"从Google Play下载我的应用程序时,有些(但不是全部)用户收到"包文件未正确签名"
具体来说,当某些用户尝试下载我的Google Play应用时,他们会收到错误,而有些用户却没有.
我的问题是:如何在提交之前检测问题是否会发生?
当我跑步的时候,这是值得的
jarsigner -verify -verbose -certs myapk.apk
Run Code Online (Sandbox Code Playgroud)
我看到如下内容:
86226 Sun Nov 09 10:34:54 EET 2014 META-INF/MANIFEST.MF X.509,// [遗漏个人资料] [证书有效期为2014年8月20日上午8:04至1/5/42 7 :04 AM] [CertPath未经过验证:Path不与任何信任锚链接] //如上所述的几百个条目,然后:jar验证.
警告:此jar包含未验证证书链的条目.此jar包含不包含时间戳的签名.如果没有时间戳,用户可能无法在签名者证书的到期日期(2042-01-05)之后或任何未来的撤销日期之后验证此jar.
我在Google Play上有一个应用程序多年来已经看到了无数的更新.最新的更新(有一段时间的第一个)无法为某些人安装,他们只是得到"包未正确签名"错误消息.
它适用于我家里的Android设备.我正在使用自定义构建系统构建和签名,该系统基本上归结为调用ant release,然后是
jarsigner -verbose -keystore $(keystore) -storepass $(storepass) $(appname).apk $(alias)
zipalign -v 4 $(appname).apk $(finalname).apk
Run Code Online (Sandbox Code Playgroud)
这已经工作了多年,构建系统或密钥库没有变化,我不知道它为什么停止为某些用户工作.
我注意到文档添加了以下注意事项:
从JDK 7开始,默认签名算法[sic]已更改,要求您在签署APK时指定签名和摘要算法[原文如此](-sigalg和-digestalg).
所以我补充说-sigalg SHA1withDSA -digestalg SHA1,它产生了一个不同大小的APK.我可以尝试滚动它,但我不想继续推出更新并惹恼用户,而不知道我实际上正在修复某些东西.
为什么这对某些人来说只会失败?我如何解决它?明确指定-sigalg/-digestalg吗?