【问题标题】:Generate signed APK after update Android Studio更新 Android Studio 后生成签名的 APK
【发布时间】:2015-08-29 15:58:34
【问题描述】:

我有一个很奇怪的问题。几年前,我编写了一个用 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 是类似的问题,但没有答案。

【问题讨论】:

    标签: android intellij-idea sign jks


    【解决方案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 将 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 控制台。一切都很好;)

    【讨论】:

      【解决方案2】:

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

      请参阅此答案以了解为什么会出现问题: https://stackoverflow.com/a/4843261/3497739

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

      祝你好运

      【讨论】:

      • 你不明白我的问题。我不会删除或修改我的 JKS 文件。我有同样的。但是 JKS 适用于 Android Studio 0.4.3,但不适用于 141.xxxx。有什么想法吗?
      • 我只是用 0.4.2 签署了 apk,它对于 Play 商店来说是好的 apk。所以,JKS 没关系。
      • 您确定您的 apk 是使用您的密钥库文件而不是默认文件签名的吗?您的 gradle 版本构建中应该有以下行:signingConfig signingConfigs.myKey
      【解决方案3】:

      可能是密钥库中的问题。

      您上传的 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 的密钥库。

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

      【讨论】:

      • 重新生成密钥是什么意思?
      • 我只是用 0.4.2 签署了 apk,它对于 Play 商店来说是好的 apk。所以 JKS 没关系。
      猜你喜欢
      • 1970-01-01
      • 2017-08-03
      • 2013-12-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-02-27
      相关资源
      最近更新 更多