如何启用 Google Play 应用程序签名

我认为很多开发人员都在试图了解更多关于 Google Play App Signing 在 Google I/O 2017上提供的新功能。

在 Google Play 中存储密钥存储以签署应用程序的功能可以节省您安全存储密钥存储的工作量,并且可以帮助系统根据硬件和操作系统的特性优化服务于每个设备的 APK。

您可以在这里的官方文档中阅读更多关于这个主题的内容: https://developer.android.com/studio/publish/app-signing.html#google-play-app-signing

以下的答案,我将解释一点更好的步骤,你需要遵循上传你的原来的密钥存储和如何创建新的上传密钥存储,你将需要签署您的 APK 从这一点开始。

177339 次浏览

在开始之前,观看 Android 开发者的视频,了解你的应用程序注册选择的含义: Https://youtu.be/odv_1fxt9bi

本指南面向已经在 Play Store 中拥有应用程序的开发人员。如果你开始使用一个新的应用程序,这个过程会容易得多,你可以遵循 给你中“新的应用程序”一段的指导方针

99% 的开发人员已经具备的先决条件是:

  1. 安卓工作室

  2. JDK 8 ,安装后需要在用户空间中设置一个环境变量,以简化终端命令。在 Windows x64中,你需要把这个: abc0添加到环境变量。(如果你不知道如何做到这一点,你可以阅读我的指南 在 Windows10abc1环境变量中添加一个文件夹)。

步骤0 : 打开 Google Play 开发者控制台,然后转到 版本管理-> 应用程式签署

enter image description here

接受应用程序签名操作系统。

enter image description here

步骤1 : 下载 PEPK Tool,单击与下图相同的按钮

enter image description here

步骤2 : 打开终端并键入:

Java-jar PATH _ TO _ PEPK —— keystore = PATH _ TO _ KEYSTORE —— ALIAS = ALIAS _ You _ USE _ TO _ SIGN _ APK —— output = PATH _ TO _ OUTPUT _ FILE —— cryptionkey = GOOGLE _ ENCRYPTION _ KEY ——输出 = PATH _ TO _ OUTPUT _ FILE ——加密密钥 = GOOGLE _ ENCRYPTION _ KEY

图例:

  • PATH _ TO _ PEPK = 您在 第一步中下载的 pepk.jar 的路径,对于 Windows 用户可能类似于 C:\Users\YourName\Downloads\pepk.jar
  • PATH _ TO _ KEYSTORE = 密钥存储库路径,您可以使用该路径对发行版 APK 进行签名。可能是一个 * 类型的文件。Keystore 或 * 。开合或不开合。像 C:\Android\mykeystore或者 C:\Android\mykeystore.keystore之类的。.
  • ALIAS _ You _ USE _ TO _ SIGN _ APK = 用于签名发布 APK 的别名的名称。
  • PATH _ TO _ OUTPUT _ FILE = 扩展名为. pem 的输出文件的路径,类似于 C:\Android\private_key.pem
  • GOOGLE _ ENCRYPTION _ KEY = 此加密密钥应始终相同。您可以在应用程序签名页面中找到它,复制并粘贴它。应该是这种形式: eb10fe8f7c7c9df715022017b00c6471f8ba8170b13049a11e6c09ffe3056a104a3bbe4ac5a955f4ba4fe93fc8cef27558a3eb9d2a529a2092761fb833b656cd48b9de6a

例如:

Java-jar“ C: Users YourName Downloads pepk.jar”—— keystore = “ C: Android mykeystore” —— alias = myalias —— output = “ C: Android private _ key. pem”—— cryptionkey = eb10fe8f7c7c9df715022017b00c6471f8ba8170b13049a11e6c09ffe3056a104a3bbe4ac5a955f4ba4fe93fc8cef27558a3eb9d2a529a2092761fb833b656cd48b9de6a

按回车键,您将需要按顺序提供:

  1. 密钥存储库密码
  2. 化名密码

如果一切正常,您现在将在 PATH _ TO _ OUTPUT _ FILE 文件夹中拥有一个名为 private_key.pem的文件。

步骤3 : 上传 private _ key. pem 文件,单击与下图相同的按钮

enter image description here

步骤4 : 使用 Android Studio 创建一个新的密钥库文件。

你将来需要这个钥匙店来签署下一个版本 你的应用,别忘了密码

打开一个 Android 项目(随机选择一个)。转到 建造-> 生成已签名的 APK,然后按 创造新的

enter image description here

现在您应该填充所需的字段。

密钥存储路径代表新的密钥存储您将创建,选择一个文件夹和一个名称使用3点图标的权利,我选择 C:\Android\upload_key.jks(。将自动添加 jks 扩展)

注意: 我使用 upload作为新的别名,但是如果您以前使用相同的密钥存储库和不同的别名来签署不同的应用程序,那么您应该选择与您以前在原始密钥存储库中使用的相同的别名。

enter image description here

完成后按 OK,现在您将有一个新的 upload_key.jks密钥存储库。现在您可以关闭 Android Studio 了。

步骤5 : 我们需要从新创建的 upload_key.jks密钥存储库中提取上传证书。 打开终端机,键入:

Keytool-export-rfc-keystore UPLOAD _ KEYSTORE _ PATH-alias UPLOAD _ KEYSTORE _ ALIAS - 文件 PATH _ TO _ OUTPUT _ FILE

图例:

  • UPLOAD _ KEYSTORE _ PATH = 您刚刚创建的上载密钥存储的路径。
  • UPLOAD _ KEYSTORE _ ALIAS = 与上载密钥存储库关联的新别名。
  • PATH _ TO _ OUTPUT _ FILE = 扩展名为. pem 的输出文件的路径。

例如:

Keytool-export-rfc-keystore“ C: Android load _ key. jks”-alias load-file“ C: Android load _ key _ public _ certificate. pem”

按 Enter 键,您将需要提供密钥存储库密码。

现在,如果一切正常,那么在文件夹 PATH _ TO _ OUTPUT _ FILE 中将有一个名为 upload_key_public_certificate.pem的文件。

步骤6 : 上传 upload_key_public_certificate.pem文件,单击与下图相同的按钮

enter image description here

步骤7 : 单击应用程序签名页面末尾的 注册按钮。

enter image description here

现在,每个新版本的 APK 都必须使用在 第四步中创建的 upload_key.jks密钥存储库和别名进行签名,然后才能上传到 Google Play Developer 控制台。

更多资源:

问与答

问: 当我上传用新上传密钥库签名的 APK 时,Google Play 会显示一个错误,比如: 您上传了一个未签名的 APK。您需要创建一个已签名的 APK

答: 在构建发行版 APK 时,检查是否使用两个签名(V1和 V2)对 APK 进行签名。阅读 给你了解更多细节。

更新

步骤4,5,6是创建上传键,这是可选的现有应用程序

”上传密钥(现有应用程序可选) : 在注册该程序期间生成的新密钥。您将使用上传密钥签署所有未来的 APK 之前,上传到播放控制台。” Https://support.google.com/googleplay/android-developer/answer/7384423

当您使用 布料进行公开 beta 版本(使用 prod 配置签名)时,不要使用 Google Play App Signing。 你必须在建立两个签名的 apk!

当你发布到更多的游戏商店(三星,亚马逊,小米,...) ,你必须再次建立两个签名 apk。

所以在使用 Google Play 应用程序时要非常小心。

这是不可能恢复的:/ 和谷歌播放没有接受后签署的 apks 与生产关键。启用谷歌应用程序签名后,只有上传键被接受..。

这真的很复杂的 CI 分布..。

升级的下一个问题: https://issuetracker.google.com/issues/69285256

我必须这么做:

  1. 在谷歌播放控制台创建一个应用程序 enter image description here

2. 转到 应用程序发布-> 管理生产-> 创建发布

3. 点击 Google Play 应用程序签名继续 enter image description here

4. 通过运行“ keytool-genkey-v-keystore c: path to cert.keystore-alias uploadKey-keyalg RSA-keysize 2048-valid10000”创建上传证书

5. 使用生成的证书为 apk 签名(c: cert.keystore 的路径)

6. 在 应用程序发布-> 管理生产-> 编辑发布中上传签名的 apk

7.通过上传 apk,步骤4中生成的证书已经添加到 应用程序签名证书中,并成为您未来所有构建的签名证书。

做以下事情:

"CREATE APPLICATION" having the same name which you want to upload before.
Click create.
After creation of the app now click on the "App releases"
Click on the "MANAGE PRODUCTION"
Click on the "CREATE RELEASE"
Here you see "Google Play App Signing" dialog.
Just click on the "OPT-OUT" button.
It will ask you to confirm it. Just click on the "confirm" button

有一个更简单的解决方案,需要一分钟的时间。

  1. 在谷歌播放控制台,选择 发布管理-> 应用签名
  2. 选择第一个选项,使用 Android Studio 生成加密的私钥(或者类似的东西; 我不能再回头看那个页面了)
  3. 在 Android Studio 中生成您的 Android 应用程序包(。从 建造-> 生成签名包/APK..。,选择 Android 应用程序包选项,不要忘记检查 导出加密密钥(需要注册您的应用程序 Google Play 应用程序签名)选项。如果没有生成密钥存储库,请生成一个 ad-hoc。
  4. 现在是“棘手”的部分。在那之后。如果生成 aab,Android Studio 将在右下角弹出一个通知,其中包含到。Aab 文件已保存。在同一个通知中,如果您将展开它,您将找到另一个指向保存私钥的路径的链接(称为 私人钥匙 Pepk)。如果你错过了这个通知,不要担心,只要打开 事件日志窗口,点击右下角的 事件日志按钮,你会发现相同的信息。打开那个位置。对我来说是 C: 用户你的用户。机器人

enter image description here

  1. 回到浏览器中,按下 APP SIGING PRIVATE KEY 按钮,浏览到计算机上的私钥位置。

成交!

现在您可以上传之前生成的版本:) 祝你好运!

在将 Android 应用程序包文件(APK)迁移到 Android 应用程序包(AAB)时,将应用程序发布到 Play Store 中我遇到了这个问题,并像下面这样得到了解决..。

当构建 .aab文件时,会提示您存储键导出路径的位置,如下所示:

enter image description here
enter image description here 在第二个图像中,您可以找到加密的密钥导出路径位置。Pepk 将存储在特定的文件夹中,同时生成。资料。

一旦你用游戏商店凭证登录到谷歌游戏控制台: 从左侧选择您的项目,选择应用程序签名选项释放管理 > > 应用程序签名 enter image description here

您会发现谷歌应用程序签名认证窗口接受它。

之后,你会发现三个单选按钮选择 **

上传从 AndroidStudio 单选按钮导出的密钥

它会让你变得更强大 应用程序签名私钥按钮如下

enter image description here

单击按钮并选择 .pepk文件(我们在生成 .aab文件时存储,如上所示)

阅读所有其他选项并提交。

一旦成功,您可以返回到应用程序发布和浏览。 aab 文件,并完成 RollOut..。

@ Ambilpura

更新谷歌控制台进入内部安装和开放应用程序的完整性。把你的密钥上传到这里。你就可以走了。

screen shot for updated google console