繁体   English   中英

更新Android Studio后生成签名的APK

[英]Generate signed APK after update Android Studio

我有一个很奇怪的问题。 多年前,我写了一个用Eclipse编写的应用程序。 然后,我升级到Android Studio 0.4.3,一切正常,但现在我删除了该AS,并使用新版本(Android Studio 141.xxxx)。

问题是,我使用相同的JKS证书,但是上传到Google Play商店后,我看到了有关指纹差异的信息。

您已将使用其他证书签名的APK上传到以前的APK。 您必须使用相同的证书。 您现有的APK已使用带有指纹的证书进行了签名:

[SHA1:D0:D9:BE:8B:D2:6A:5F:xxxxxxxxxxxxxxxxxxxx:F4:D9:91:66:06:12]

并且用于对您上传的APK进行签名的证书具有指纹:

[SHA1:DA:53:9F:A7:D3:3C:8D:xxxxxxxxxxxxxxxxxxxx:CE:1F:F2:AB:0B:64]

我尝试在我的应用手册上签名,但随后进行了交流。

上传失败您上传的APK的某些文件的签名信息无效或缺失。 您需要创建一个有效的签名APK。 了解有关签名的更多信息。

有人有主意吗? 是类似的问题,但没有答案。

Okey ...最后,我解决了这个问题。 但是我仍然不知道为什么会这样。

首先,我确保之前使用相同的jks

jarsigner -verify -verbose:summary -certs old.apk
jarsigner -verify -verbose:summary -certs new.apk

证书看起来一样。 因此,我构建了我的应用程序,并用我的证书签名了。 但这是行不通的。

所以我手动做

  1. 我使用WinRAR打开我的apk文件,然后从app-release-unaligned.apk (在我的情况下为app \\ build \\ outputs \\ apk)中删除META-INF目录
  2. 使用我的app-release-unaligned.apk将zipalign.exe粘贴到文件夹
  3. 使用apk打开文件夹中的CMD (Shift +右键单击+“在此处打开命令窗口”。)

然后,我手动使用jarsigner ,然后使用zipalign.exe

jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore key.jks -storepass MYPASSWORD app-release-unaligned.apk 1

zipalign -f -v 4 app-release-unaligned.apk app-release.apk

然后,我将app-release.apk上传到Google控制台。 一切都很好;)

我认为您遇到的问题是您没有使用自己的密钥存储文件来上传apk。 在IDE版本之间,该文件可能已更改。

有关此问题的解释,请参考此答案: https : //stackoverflow.com/a/4843261/3497739

另请阅读此参考页,以了解如何正确签名apk https://developer.android.com/tools/publishing/app-signing.html

祝好运

密钥库中可能有问题。

您已将使用其他证书签名的APK上传到以前的APK。 您必须使用相同的证书。 您现有的APK已使用带有指纹的证书进行了签名:

[SHA1:D0:D9:BE:8B:D2:6A:5F:xxxxxxxxxxxxxxxxxxxx:F4:D9:91:66:06:12]

并且用于对您上传的APK进行签名的证书具有指纹:

[SHA1:DA:53:9F:A7:D3:3C:8D:xxxxxxxxxxxxxxxxxxxx:CE:1F:F2:AB:0B:64]

这意味着您使用了不正确的密钥库,而不是用于签署以前版本的APK的密钥库。

确保您使用相同的密钥库文件。 如果相同-再次重新生成密钥。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM