如何在 Google Play 控制台中为应用程序签名退出 .aab 文件
Posted
技术标签:
【中文标题】如何在 Google Play 控制台中为应用程序签名退出 .aab 文件【英文标题】:How to resign a .aab file for app signing in Google play console 【发布时间】:2019-11-08 07:30:42 【问题描述】:我目前在一家制药公司工作,女巫也发布应用程序。到目前为止,唯一的范围是 ios,现在他们想要创建 android 应用程序。
我们从开发人员那里收到一个未签名的 .aab 文件,因为我们有一个内部验证流程。 在此过程之后,我们需要退出应用程序以将其部署到 Google Play 控制台中。
但当我上传 .aab 时,我得到:“您上传的 APK 签名无效(了解有关签名的更多信息)。来自 apksigner 的错误:” 没有更多信息
如前所述,我们得到一个干净的 .aab 文件,不多不少,需要部署它。
我在控制台中创建了一个新应用,启用了应用签名,下载了 pepk.jar 文件,运行附加到 pepk 的代码,上传了输出文件并下载了 upload_cert.der 文件。
现在我已经尝试在我的 .keystore 文件中导入 .der 文件并退出 .aab --> 没有成功 $ keytool -importcert -file upload_cert.der -keystore appname.keystore
我尝试创建一个 .jks 密钥库并导入 .der --> 不成功
--
创建密钥库的示例代码: $ keytool -genkey -v -keystore appname.keystore -alias alias -keyalg RSA -keysize 2048 -validity 10000
签名示例代码: $ jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore appname.keystore appname_unsigned.aab "alias"
zipalign 示例代码: $ zipalign -v 4 appname_signed.aab cimzia_aligned.aab
出了什么问题? 有什么想法吗?
【问题讨论】:
【参考方案1】:欢迎尼尔斯。
您需要更好地理解签名背后的概念,特别是 .der
文件确实不包含您的私钥,因此您将无法使用它来签署您的 AAB。
为此,我在此答案中提供了对各种概念的广泛描述:Use provided upload_cert.der to sign a release Android APK file
阅读并希望它会有所帮助。
tldr 是您应该使用只有您拥有的私人上传密钥(Google 没有此密钥 - 除非您明确选择使用与您的签名密钥相同的密钥) ,而不是 Google 允许您下载的 .der
文件,因为它只包含上传密钥的 public 部分。
根据您注册 Play Signing 的方式,私钥可以是您用来签署 APK 的原始密钥库,也可以是您在注册时生成的其他密钥(当系统提示您使用不同的上传密钥时)。 official documentation 应该详细解释所有过程。
【讨论】:
以上是关于如何在 Google Play 控制台中为应用程序签名退出 .aab 文件的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Play 商店中为您的应用手动下载扩展 (obb) 文件?