24

我生成了一个目标 sdk 版本为 30 的签名 apk。(Android 11)。我知道它没有正式发布,但我的应用程序已经准备好迎接新的变化。我正在尝试将其上传到谷歌播放控制台但遇到错误:

您上传的 APK 签名无效(了解有关签名的更多信息)。来自 apksigner 的错误:错误:MIN_SIG_SCHEME_FOR_TARGET_SDK_NOT_MET:目标 SDK 版本 30 至少需要签名方案 v2;APK 未使用此签名方案或更高版本的签名方案进行签名。

我试图做的事情:

  1. 我在生成 apk 时仔细检查了是否选择了 v2(完整的 APK 签名)。
  2. 我尝试使用 apksigner 手动签署 apk。

没有任何效果。我想知道它是否不起作用,因为该版本尚未发布。但是,我知道它应该从文档中工作。

4

4 回答 4

50

对于那些在命令行上构建 Cordova 项目的简短回答:您需要从 to 切换jarsignerapksigner相应地设置命令。注意:你需要在zipalign 之前 apksigner运行,这与我们过去使用它的方式不同jarsigner。这是一个例子:

cordova build android --release

zipalign -f 4 platforms/android/app/build/outputs/apk/release/myapp-release-unsigned.apk myapp.apk

apksigner sign --ks my-ks.keystore --ks-pass file:my-passfile.txt --v1-signing-enabled true --v2-signing-enabled true myapp.apk

... upload apk to store or whatever ... 
于 2021-10-06T23:09:47.110 回答
11

生成 apk 时同时选择 V1 和 V2(完整 Apk 签名)。这解决了我的问题,这与您的问题相似。

于 2020-08-28T09:41:50.127 回答
6

生成 App Bundle 而不是 APK。

在我的应用程序中,我以 api 30 为目标并毫无问题地发布了捆绑包。

于 2020-08-04T12:50:39.037 回答
3

我很难解决这个问题。以下帮助我完全解决了它。

  1. 在 config.xml(Cordova 项目的根目录)中添加以下 2 行
<preference name="android-minSdkVersion" value="30"/>

<preference name="android-targetSdkVersion" value="30"/>
  1. 在 AndroidStudio 中导入您的项目
  2. 在 Build 点击 Generate Signed Bundle / APK

在此处输入图像描述

  1. 选择 Android 应用程序包

在此处输入图像描述

  1. 更新密钥库文件/密码和所有请求的详细信息(请选择导出加密密钥的选项,因为您需要将其上传到 Playstore)

在此处输入图像描述

  1. 选择发布

在此处输入图像描述

  1. 在上传 app bundle 之前,您需要上传证书(您在第 4 步中下载的证书)

在此处输入图像描述

  1. (可选步骤)您还将看到一个自动生成的应用程序签名密钥证书,如果需要,您可以下载它

  2. 上传 App Bundle,您现在可以将 App 发布到 PlayStore。

于 2021-02-02T16:20:47.767 回答