为 Play 商店签署 kivy 应用程序时出错
Posted
技术标签:
【中文标题】为 Play 商店签署 kivy 应用程序时出错【英文标题】:Error while signing an kivy app for the play store 【发布时间】:2021-05-05 08:43:12 【问题描述】:我使用 buildozer android release 命令制作了一个发布 apk。然后我使用以下命令对我的 apk 进行签名和压缩。
生成密钥库文件 [之前] - keytool -genkey -v -keystore myapp.keystore -alias myalias -keyalg RSA -keysize 2048 -validity 10000
生成密钥库文件 [之后] - keytool -importkeystore -srckeystore myapp.keystore -destkeystore myapp.keystore -deststoretype pkcs12
签署apk - jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore myapp.keystore myapp-0.1-arm64-v8a-release-unsigned.apk myalias
zipalign apk - zipalign -v 4 myapp-0.1-arm64-v8a-release-unsigned.apk playstore-release.apk
完成所有操作后,Play 商店出现此错误 - 您上传的 APK 签名无效(了解有关签名的更多信息)。来自 apksigner 的错误:错误:MIN_SIG_SCHEME_FOR_TARGET_SDK_NOT_MET:目标 SDK 版本 30 至少需要签名方案 v2; APK 未使用此签名方案或更高版本的签名方案进行签名
目标 max api 30 和 min api 21, sdk 30 used
我如何在 2021 年将我的 apk 上传到 Playstore
【问题讨论】:
【参考方案1】:首先,您的项目必须能够在 .apk 处于调试和未签名模式的 android 上运行。
如果是这种情况,您可以阅读这些 2 个步骤。
首先,您必须签署您的应用程序,以确保您是唯一可以更新它的人(防止恶意算法插入)。
在您的 buildozer.spec
文件中更改此内容:
#App store要求我们有这个架构和最新的api可用(实际上是29个)
android.arch = arm64-v8a
android.api = 29
#每次你在应用商店更新你的apk,你必须把这个变量加1。默认是8211但是要注意,你必须从一开始就改变它(我从1开始):
android.numeric_version = 1
现在您的密钥已签名,进入终端并:
---- 满足以下变量----
project_path=~/MY/PATH
key_filename=mykeyfilename
key_alias=mykeyaliasname
password="turlututu"
---- 只做一次 ----
mkdir -p ~/keystores/
keytool -genkey -v -keystore ~/keystores/$key_filename.keystore -alias $key_alias -keyalg RSA -keysize 2048 -validity 10000
---- 打印警告并建议我们迁移到 PKCS12 所以我们这样做----
keytool -importkeystore -srckeystore ~/keystores/$key_filename.keystore -destkeystore ~/keystores/$key_filename.keystore -deststoretype pkcs12
---- 只做一次的部分结束----
export P4A_RELEASE_KEYSTORE=~/keystores/$key_filename.keystore
export P4A_RELEASE_KEYSTORE_PASSWD=$password
export P4A_RELEASE_KEYALIAS_PASSWD=$password
export P4A_RELEASE_KEYALIAS=$key_alias
cd $project_path
buildozer -v android release
【讨论】:
我个人让 min/max api 变量注释了,因此您的错误可能来自此更改。 感谢您的回答,我会检查这个 完美完成这些步骤后 [max api not changed] play store 出现此错误 - 您上传的 APK 签名无效(了解有关签名的更多信息)。来自 apksigner 的错误:错误(Jar 签名者 CERT.RSA):JAR 签名 META-INF/CERT.SF 表示 APK 使用 APK 签名方案 v2 进行签名,但未找到此类签名。签名被剥夺?【参考方案2】:(我暂时无法发表评论,所以我在这里写)。我不知道这个错误,我没有时间搜索抱歉。
小提示:here 他们谈论 Visual Studio 问题,也许是你的情况?
【讨论】:
以上是关于为 Play 商店签署 kivy 应用程序时出错的主要内容,如果未能解决你的问题,请参考以下文章
作为使用 Kivy 2.0 的初学者,我需要采取哪些步骤将我的项目(应用程序)编译到 Play 商店
引入新的 Google 政策后,在 Google Play 商店更新应用程序时出错