如何启用Google Play App签名

时间:2017-05-22 00:17:41

标签: android google-play android-signing android-app-signing

我认为很多开发者都在尝试详细了解2017年Google I / O上展示的新版Google Play App Signing功能。

存储密钥库以在Google Play内部对应用进行签名的功能可以节省您安全存储密钥库的工作量,并可以帮助系统根据硬件和操作系统特性优化为每个设备提供的APK。

您可以在此处的官方文档中了解有关此主题的更多信息:{{3}}。

通过以下答案,我将更好地解释您上传原始密钥库所需遵循的步骤,以及如何创建新的上传密钥库,从此时起您需要签署APK。

7 个答案:

答案 0 :(得分:139)

本指南面向已在Play商店中拥有应用程序的开发人员。如果您开始使用新的应用程序,这个过程会更容易,您可以遵循段落#34;新应用程序"来自here

99%的开发人员已经拥有

的先决条件
  1. Android Studio

  2. JDK 8 ,安装后需要在用户空间中设置环境变量以简化终端命令。在Windows x64中,您需要将此C:\Program Files\Java\{JDK_VERSION}\bin添加到Path环境变量中。 (如果您不知道如何操作,可以阅读我的add a folder to the Windows 10 Path environment variable指南。

  3. 第0步:打开Goog​​le Play开发者控制台,然后转到发布管理 - >应用程序签名

    enter image description here

    接受App Signing TOS。

    enter image description here

    第1步:点击与下图相同的按钮下载PEPK工具

    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 --encryptionkey = GOOGLE_ENCRYPTION_KEY

    图例:

    • PATH_TO_PEPK =您在第1步中下载的pepk.jar的路径可能与Windows用户的C:\Users\YourName\Downloads\pepk.jar类似。
    • PATH_TO_KEYSTORE =您用于签署发布APK的密钥库的路径。可以是* .keystore或* .jks类型的文件,也可以没有扩展名。类似于C:\Android\mykeystoreC:\Android\mykeystore.keystore等......
    • ALIAS_YOU_USE_TO_SIGN_APK =您用于签署发布APK的别名的名称。
    • PATH_TO_OUTPUT_FILE =扩展名为.pem的输出文件的路径,类似于C:\Android\private_key.pem
    • GOOGLE_ENCRYPTION_KEY =此加密密钥应始终相同。您可以在App Signing页面找到它,复制并粘贴它。应采用以下形式:eb10fe8f7c7c9df715022017b00c6471f8ba8170b13049a11e6c09ffe3056a104a3bbe4ac5a955f4ba4fe93fc8cef27558a3eb9d2a529a2092761fb833b656cd48b9de6a

    示例:

      

    java -jar" C:\ Users \ YourName \ Downloads \ pepk.jar" --keystore =" C:\的Android \ mykeystore"   --alias = myalias --output =" C:\ Android \ private_key.pem" --encryptionkey = eb10fe8f7c7c9df715022017b00c6471f8ba8170b13049a11e6c09ffe3056a104a3bbe4ac5a955f4ba4fe93fc8cef27558a3eb9d2a529a2092761fb833b656cd48b9de6a

    按Enter键,您需要按顺序提供:

    1. 密钥库密码
    2. 别名密码
    3. 如果一切正常,您现在将在名为private_key.pem的PATH_TO_OUTPUT_FILE文件夹中有一个文件。

      第3步:上传private_key.pem文件,点击与下图相同的按钮

      enter image description here

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

        

      你将需要这个关键的未来签署下一个版本   你的APP,不要忘记密码

      打开一个Android项目(随机选择一个)。转到构建 - > 生成签名APK 并按创建新

      enter image description here

      现在您应该填写必填字段。

        

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

           

      注意:我使用upload作为新的别名,但如果您以前使用具有不同别名的相同密钥库来签署不同的应用程序,则应选择先前在原始密钥库中使用的别名。

      enter image description here

      完成后按确定,现在您将拥有一个新的upload_key.jks密钥库。您现在可以关闭Android Studio。

      第5步:我们需要从新创建的upload_key.jks密钥库中提取上载证书。 打开终端并输入:

        

      keytool -export -rfc -keystore UPLOAD_KEYSTORE_PATH -alias UPLOAD_KEYSTORE_ALIAS   -file PATH_TO_OUTPUT_FILE

      图例:

      • UPLOAD_KEYSTORE_PATH =您刚刚创建的上传密钥库的路径。在这种情况下是C:\Android\upload_key.jks
      • UPLOAD_KEYSTORE_ALIAS =与上传密钥库关联的新别名。在这种情况下是upload
      • PATH_TO_OUTPUT_FILE =扩展名为.pem的输出文件的路径。像C:\Android\upload_key_public_certificate.pem
      • 之类的东西

      示例:

        

      keytool -export -rfc -keystore" C:\ Android \ upload_key.jks" -alias upload -file" C:\ Android \ upload_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步:点击App Signing页面末尾的 ENROLL 按钮。

      enter image description here

      现在,每个新版本的APK都必须使用步骤4 中创建的upload_key.jks密钥库和别名进行签名,然后再上传到Google Play开发者控制台。

      更多资源:

      问&安培; A

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

      答:在构建发布APK时,检查是否使用两个签名(V1和V2)对APK进行签名。请阅读here了解详情。

      <强>已更新

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

      &#34;上传密钥(现有应用程序可选):您在注册程序时生成的新密钥。在将所有APK上传到Play控制台之前,您将使用上传密钥对所有未来的APK进行签名。&#34; https://support.google.com/googleplay/android-developer/answer/7384423

答案 1 :(得分:14)

有一个简单得多的解决方案,将花费一分钟。

  1. 在Google Play控制台中,选择发布管理-> 应用签名
  2. 选择第一个选项,即带有通过Android Studio生成加密私钥的选项(或类似的东西;我无法回头再看该页面)
  3. 在Android Studio中,通过 Build -> Generate Signed Bundle / APK ... 生成您的Android App Bundle(.aap文件),选择 Android App Bundle 选项,别忘了选中导出加密密钥(需要注册您的应用Google Play应用签名)选项。如果没有生成密钥库,请临时生成一个。
  4. 现在是“棘手的”部分。生成.aap文件后,Android Studio将在右下角弹出一个通知,其中包含指向.aap文件保存位置的路径。在同一通知中,如果将其展开,则会找到另一个指向保存私钥的路径的链接(称为 private_key.pepk )。如果您错过了此通知,请放心,只需单击右下角的事件日志按钮打开事件日志窗口,您将找到相同的信息。打开那个位置。对我来说是C:\ Users \ yourUser \ .android

enter image description here

  1. 返回浏览器并按APP SIGNING PRIVATE KEY按钮,然后浏览到计算机上的私钥位置。

完成!

现在,您可以上传先前生成的发行版了:) 祝你好运!

答案 2 :(得分:4)

当您使用 Fabric 进行公开测试版发布(使用prod配置签名)时,请勿使用 Google Play App签名。 你必须在建立两个签署的apks之后!

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

请务必小心使用Google Play App Signing。

无法还原它:/ 并且在接受使用生产密钥签名的apks之后Google Play没有。启用Google Play App Signing后,只接受上传密钥...

它确实使CI分发复杂化......

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

答案 3 :(得分:4)

我必须做以下事情:

  1. 在Google Play控制台中创建应用 enter image description here
  2. 2.转到应用程序版本 - &gt;管理生产 - &gt;创建发布

    3.点击继续Google Play App Signing enter image description here

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

    5.使用生成的证书(c:\ path \ to \ cert.keystore)

    设置你的apk

    6.在应用程序版本中添加已签名的apk - &gt;管理生产 - &gt;修改发布

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

答案 4 :(得分:2)

对于更新的 Google 控制台,请转到内部设置并打开应用程序完整性。并在此处上传您的密钥。你会很高兴的。

screen shot for updated google console

答案 5 :(得分:1)

执行以下操作:

"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

答案 6 :(得分:0)

I face this issue when i am trying to migrate Apk to Android App Bundle means publishing .aab instand of .apk file..

while building .aab file its will ask the location to store key export path.
as below 

enter image description here
    enter image description here     在第二张图片中,您找到了加密密钥导出路径在生成.aab文件时我们的.pepk将存储在特定文件夹中的位置。

In Google Play Console once you login with play store credential
select your project from left side choose App Signing option Release Management>>App Signing

enter image description here

您会找到接受它的“ Google App签名认证”窗口。

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

  

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

**,它将扩展您  APP SIGNING PRIVATE KEY按钮如下

enter image description here

click on the button and choose the .pepk file (We Stored while generating .aab file as above)

Read the all other option and submit.

一旦成功,您就可以返回应用程序版本并浏览.aab文件并完成Rollout ...

@Ambilpura