【问题标题】:Android Signed APK showing as Unsigned APK when trying to upload to production尝试上传到生产环境时,Android 签名的 APK 显示为未签名的 APK
【发布时间】:2017-03-05 06:18:21
【问题描述】:

我在 Android Studio 2.3 中签署了我的 APK(构建->生成签署的 APK)。当我尝试将其上传到 Google Play 商店时,它显示我已上传未签名 APK 的错误。谁能回答它为什么会发生以及如何解决它?

【问题讨论】:

  • 可以发一下错误信息吗?
  • 在生成签名的 APK 时检查 V1(Jar 签名)而不是 V2(完整 APK 签名)时上传成功。

标签: android android-studio


【解决方案1】:

当我在 Android Studio 2.3 中生成签名的 APK 时检查 V1(Jar 签名)而不是 V2(完整 APK 签名)时,它上传成功

【讨论】:

  • 我选中了两个复选框:Jar Signature 和 Full APK Signature。这个答案提供了必要的洞察力。
  • 当 V2 可用于签名时,为什么只检查 V1?您应该同时选择 V1 和 V2 并接受 Piyush Kukadiyas 的回答。
  • 我该死的,它成功了!但为什么? (我正在运行 AS 3.1.3)。
【解决方案2】:

Android 7.0 引入了 APK 签名方案 v2,这是一种新的应用签名方案,可提供更快的应用安装时间和更多保护,防止未经授权的 APK 文件更改。

生成签名 apk 时有两个复选框。

  1. V1(Jar 签名)
  2. V2(完整的 apk 签名)

我们有三种选择:

  1. 选择 V1(对于旧版本的签名)- apk 上传成功

  2. 选择 V2(对于较新版本的签名)- 请注意,单独选择此选项不起作用。

  3. 选择 V1 和 V2(旧版本和新版本)- apk 上传成功

为什么单独选择 V2 不起作用?

因为 APK 签名方案 v2 是在 Android 7.0 (Nougat) 中引入的。 要使 APK 可安装在 Android 6.0 (Marshmallow) 和更旧的设备上,应先使用 JAR 签名对 APK 进行签名,然后再使用 v2 方案进行签名。

欲了解更多信息jump here

【讨论】:

  • 感谢您的解释,但是当我同时检查 V1 和 V2 时,为什么 Google 会抱怨?
  • @ScottBiggs 当你们都检查了他们的抱怨是什么?
【解决方案3】:

v1v2 签名。上传成功。

【讨论】:

    【解决方案4】:

    这是因为您在进行发布构建时仅使用 v2 签名。

    那么 v1 和 v2 提到了什么?

    v1 是默认的签名机制,v2 是最新添加的机制,验证速度更快。这意味着 v2 签名的 APK 在 Android Nougat(Android 7.0,API 级别 24)和更高版本上的安装/更新速度更快。

    那你该怎么办?

    如果您想在不做任何更改的情况下签署应用程序

    检查 v1(仅限 jar 签名),这是默认设置。

    如果您想要最新的签名并支持 7.x 版本

    检查 v2(完整的 Apk 签名),这也减少了应用程序的大小。

    如果您希望应用程序更小,能够更快地安装并与所有 Android 版本兼容。

    检查 v1 和 v2。

    PS:仅适用于使用 Studio 签署应用程序,而不是使用管道构建。

    更多推荐人Link

    【讨论】:

      【解决方案5】:

      如何使用 V2 签署 APK

      https://developer.android.com/studio/command-line/apksigner.html

      步骤1)Android Studio,选择查看>工具窗口>终端

          gradlew assembleRelease
      

      2) 使用 zipalign 对齐未签名的 APK:

      zipalign -v -p 4 my-app-unsigned.apk my-app-unsigned-aligned.apk
      

      3) 使用 apksigner 使用您的私钥为您的 APK 签名:

      apksigner sign --ks my-release-key.jks my-app-unsigned-aligned.apk --out my-app-release.apk
      

      注意:要使用 apksigner 工具,您必须安装 24.0.3 或更高版本的 Android SDK 构建工具。您可以使用 SDK 管理器更新此软件包。

      4) 验证您的 APK 是否已签名:

      apksigner verify my-app-release.apk
      

      注意:步骤 2 到 4 在命令提示符 G:\AndroidStudio\Sdk\build-tools\25.0.0\ 中执行

      【讨论】:

      • 先生,我尝试了上述过程,但出现以下错误---您上传的 APK 不是 zip 对齐的。您需要在 APK 上运行 zip align 工具并重新上传。?
      • @Kapilsoni 缺少第 2 步。你需要转到 SDK -> 构建工具 -> 30.0.2 那里你会发现 zipalign
      • 先生,但如果我通过上述过程生成构建,则会出现构建未安装错误我的设备
      • 首先,生成一个构建,然后在APK上应用这些步骤后,必须签名
      • 是的,先生完成了,但我在 Play 控制台中遇到了另一个问题——您上传的 APK 没有使用上传证书签名。您必须使用相同的证书。上传证书有指纹:
      【解决方案6】:

      如果遇到这个问题,请使用 Android Studio 3.3,无论您是否选中 Signature 复选框,错误都会不断出现,请尝试手动删除 app/build 文件夹。

      来源:https://stackoverflow.com/a/54213942/787511

      【讨论】:

        【解决方案7】:

        这是谷歌的问题,两天前在this page发布

        【讨论】:

        • 上传失败 您上传了一个未签名的 APK。您需要创建一个签名的 APK。
        【解决方案8】:

        根据随附的屏幕截图,选择 V1(Jar 签名)和 V2(完整 APK 签名)。它会起作用的。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2019-06-21
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2019-01-03
          • 2016-02-29
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多