更新Android Studio后生成签名的APK

时间:2015-08-29 15:58:34

标签: android intellij-idea sign jks

我真的很奇怪。几年前我写了一个用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。了解有关签名的更多信息。

有人有想法吗? Here是类似的问题,但没有回答。

3 个答案:

答案 0 :(得分:1)

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

首先,我确保在

之前使用相同的jks
jarsigner -verify -verbose:summary -certs old.apk
jarsigner -verify -verbose:summary -certs new.apk

证书看起来一样。所以我构建我的应用程序并使用我的证书签名。但它不起作用。

所以我手动制作了

  1. 我用WinRAR打开我的apk文件,然后从app-release-unaligned.apk 删除 META-INF 目录(在我的情况下为app \ build \ outputs \ apk)
  2. 使用我的app-release-unaligned.apk
  3. 将zipalign.exe粘贴到文件夹
  4. 使用apk 在文件夹中打开CMD(shift +右键单击+"在此处打开命令窗口。")
  5. 然后我手动使用 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控制台。一切都很好;)

答案 1 :(得分:0)

我相信你遇到的问题是你上传的apk没有使用自己的密钥存储文件。 该文件可能在IDE版本之间发生了变化。

参考这个答案,解释为什么这是一个问题: https://stackoverflow.com/a/4843261/3497739

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

祝你好运

答案 2 :(得分:0)

密钥库中可能存在问题。

  

您上传了使用其他证书签名的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的密钥库。

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