Android已签名的APK在尝试上载到生产时显示为未签名的APK
我在Android Studio 2.3中签署了我的APK(构建->生成签署的APK)。当我试图上传到谷歌播放商店,它显示了错误,我上传了未签名的APK。有人能回答为什么会发生这种情况,以及如何解决它吗?这是谷歌的问题,它是两天前在中发布的,当我在Android Studio 2.3中生成签名的APK时,检查了V1(Jar签名)而不是V2(完整的APK签名),它成功上传了 步骤1)Android Studio,选择查看>工具窗口>终端Android已签名的APK在尝试上载到生产时显示为未签名的APK,android,android-studio,Android,Android Studio,我在Android Studio 2.3中签署了我的APK(构建->生成签署的APK)。当我试图上传到谷歌播放商店,它显示了错误,我上传了未签名的APK。有人能回答为什么会发生这种情况,以及如何解决它吗?这是谷歌的问题,它是两天前在中发布的,当我在Android Studio 2.3中生成签名的APK时,检查了V1(Jar签名)而不是V2(完整的APK签名),它成功上传了 步骤1)Android Studio,选择查看>工具窗口>终端 gradlew assembleRelease
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
注意:在命令提示符G:\AndroidStudio\Sdk\build tools\25.0.0\中执行步骤2至4这是因为在进行发布生成时仅使用v2签名 那么v1和v2提到了什么 v1是默认的签名机制,v2是添加的最新机制,验证速度更快。这意味着在Android Nougat(Android 7.0,API级别24)和更高版本上更快地安装/更新v2签名的APK 那你该怎么办 如果您想在不做任何更改的情况下签署应用程序 检查v1(仅限jar签名),这是默认值 如果您想要7.x版本的最新签名和支持 检查v2(完整Apk签名),这也减少了应用程序大小 若你们想让应用程序更小,那个么可以更快地安装,并与所有Android版本兼容 检查v1和v2 PS:仅适用于与Studio签署应用程序,而不是使用管道进行构建
更多参考资料Android 7.0引入了APK签名方案v2,这是一种新的应用程序签名方案,它提供了更快的应用程序安装时间和更多保护,以防止对APK文件进行未经授权的更改 生成签名apk时,有两个复选框
有关详细信息,请同时为v1和v2签名。它将成功上载。如果您达到此目标,请使用Android Studio 3.3,无论您是否选中签名复选框,错误都会不断出现,请尝试手动删除应用程序/构建文件夹
来源:根据所附的屏幕截图,选择V1(Jar签名)和V2(完整APK签名)。它会起作用的
您能发送错误消息吗?在生成已签名的APK时,当我选中V1(Jar签名)而不是V2(完整APK签名)时,它已成功上载。上载失败您上载了未签名的APK。您需要创建一个签名的APK。我选中了两个复选框:Jar签名和完整的APK签名。这个答案提供了必要的洞察力。为什么在V2可用于签名时只检查V1?你们应该选择V1和V2,接受皮尤斯·库卡迪亚斯的答案。我会被诅咒的,它成功了!但是为什么呢?(我以3.1.3版运行)。谢谢你的解释,但当我同时检查了V1和V2时,谷歌为什么会抱怨?@ScottBiggs当你同时检查时,他们的抱怨是什么?先生,我尝试了上述过程,但我得到了以下错误---你上传了一个未对齐的APK。你需要在你的APK上运行一个zip对齐工具并再次上传它。?@Kapilsoni步骤2缺失。你需要转到SDK->build tools->30.0.2,在那里你会找到zipalignsir,但是如果我通过上面的过程生成了build not installed errors i deviceFirst,生成一个build,然后在APK上应用这些步骤后,必须签名是的,长官,完成了,但我在游戏控制台中遇到了另一个问题——您上载了一个APK,但它没有使用上载证书签名。您必须使用相同的证书。上载证书具有指纹: