无法上传 targetSdkVersion 为 30 的签名 apk

Posted

技术标签:

【中文标题】无法上传 targetSdkVersion 为 30 的签名 apk【英文标题】:Can't upload signed apk that targetSdkVersion is 30 【发布时间】:2020-11-24 12:52:33 【问题描述】:

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

您上传的 APK 签名无效(详细了解 签字)。来自 apksigner 的错误:错误: MIN_SIG_SCHEME_FOR_TARGET_SDK_NOT_MET:目标 SDK 版本 30 需要 至少签名方案 v2; APK 没有用这个或一个 后期签名方案。

我想做什么:

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

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

【问题讨论】:

你解决了吗?如果是,请发布答案,因为我也面临同样的问题。 【参考方案1】:

对于那些在命令行上构建 Cordova 项目的简短答案:您需要从 jarsigner 切换到 apksigner 并相应地设置命令。注意:您需要运行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 ... 

【讨论】:

谢谢!这解决了科尔多瓦的问题 =) 这是科尔多瓦的最佳解决方案。它对我有用。谢谢! 你救了我的命,谢谢【参考方案2】:

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

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

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

    选择 Android 应用程序包

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

    选择发布

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

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

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

【讨论】:

【参考方案3】:

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

【讨论】:

怎么做?你能帮忙吗?我正在使用 cordova CLI 生成 APK。cordova build android --release 正在使用此命令。 @Utpal-UrBestPal 查看我在下面添加的答案***.com/a/69473649/814416【参考方案4】:

生成 App Bundle 而不是 APK。

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

【讨论】:

这一定是正确答案,容易多了 LIFE SAVERRR 谢谢!

以上是关于无法上传 targetSdkVersion 为 30 的签名 apk的主要内容,如果未能解决你的问题,请参考以下文章

当我将 targetSdkVersion 29 更新为 targetSdkVersion 30 时出现问题

如果使用 Google Play 服务,则无法在没有版本冲突的情况下使用最新的 compileSdkVersion 和 targetSdkVersion

Android:manifest targetSdkVersion 更改导致:图标不可见,小部件不再工作,并且无法访问数据

android:targetSdkVersion 为 16 时的操作栏行为

android:targetSdkVersion更新引发的“惨案”

我应该为 compileSdkVersion、minSdkVersion 和 targetSdkVersion 设置啥以支持从 Marshmallow 到 Pie?