无法上传 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?