首页 文章

如何启用Google Play App Signing

提问于
浏览
54

我想很多开发者都在尝试了解更多关于Google I / O 2017上展示的新版Google Play App Signing功能的信息 .

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

您可以在此处的官方文档中阅读有关此主题的更多信息:https://developer.android.com/studio/publish/app-signing.html#google-play-app-signing .

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

5 回答

  • 1

    当您使用 Fabric 用于公开测试版(使用prod配置签名)时, DON'T USE Google Play应用程序签名 . 你必须在 Build 两个签署的apks之后!

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

    所以要非常小心Google Play App Signing .

    It's not possible to revert it :/ 和Google Play在接受使用 生产环境 密钥签名的apks之后没有 . 启用Google Play App Signing后,只接受上传密钥...

    它真的使CI分发变得复杂......

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

  • 4

    我必须做以下事情:

    • 在Google Play控制台中创建应用
      enter image description here

    2.转到 App releases -> Manage production -> Create release

    3.单击Google Play App上的继续签名
    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.在 App releases -> Manage production -> Edit release 上载签名的apk

    7.通过上传apk,第4步中生成的证书已添加到 App Signing certificates ,并成为所有未来版本的签名证书 .

  • 3

    请执行下列操作 :

    "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
    
  • 118

    本指南面向已在Play商店中拥有应用程序的开发人员 . 如果您开始使用新应用程序,则此过程会更加轻松,您可以按照here中"New apps"段的指导原则进行操作

    Prerequisites that 99% of developers already have

    • Android Studio

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

    Step 0 :打开Google Play开发者控制台,然后转到发布管理 - >应用程序签名 .

    enter image description here

    接受App Signing TOS .

    enter image description here

    Step 1 :单击与下图相同的按钮下载PEPK工具

    enter image description here

    Step 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 =您在 Step 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键,您需要按顺序提供:

    • 密钥库密码

    • 别名密码

    如果一切正常,您现在将在PATH_TO_OUTPUT_FILE文件夹中有一个名为 private_key.pem 的文件 .

    Step 3 :上传private_key.pem文件,单击与下图相同的按钮

    enter image description here

    Step 4 :使用Android Studio创建新的密钥库文件 .

    您将需要在今后的钥匙圈签署您的APP的下一个版本,不要忘记密码

    打开一个Android项目(随机选择一个) . 转到Build - > Generate Signed APK并按Create new .

    enter image description here

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

    密钥库路径代表您将创建的新密钥库,使用右侧的3点图标选择文件夹和名称,我选择C:\ Android \ upload_key.jks(.jks扩展名将自动添加)注意:我使用过上传为新的别名但如果您以前使用具有不同别名的相同密钥库来签署不同的应用程序,则应选择先前在原始密钥库中使用的别名 .

    enter image description here

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

    Step 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 的文件 .

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

    enter image description here

    Step 7 :单击“应用程序签名”页面末尾的“ENROLL”按钮 .

    enter image description here

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

    更多资源:

    问答

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

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

    更新

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

    "Upload key (optional for existing apps): A new key you generate during your enrollment in the program. You will use the upload key to sign all future APKs prior to uploading them to the Play Console." https://support.google.com/googleplay/android-developer/answer/7384423

  • 4

    有一个更简单的解决方案需要一分钟 .

    • 在Google Play控制台中,选择 Release management - > App signing

    • 选择第一个选项,即使用Android Studio生成加密私钥的那个选项(或类似的东西;我再也不能回头看那个页面了)

    • 在Android Studio中生成您的Android应用程序包(.aap文件),从 Build - > Generate Signed Bundle / APK... ,选择 Android App Bundle 选项,不要忘记检查 Export Encrypted key (needed to enroll your app Google Play App signing) 选项 . 如果您没有生成密钥库,请生成一个ad-hoc .

    • 现在"tricky"部分 . 生成.aap后,Android Studio将在右下角弹出一个通知,其中包含保存.aap文件的位置的路径 . 在同一通知中,如果要展开它,您将找到另一个指向保存私钥的路径的链接(称为 private_key.pepk ) . 如果您错过了此通知,请不要担心,只需单击右下方的 Event Log 按钮打开 Event Log 窗口,您将找到相同的信息 . 打开那个位置 . 对我来说是C:\ Users \ yourUser \ .android

    enter image description here

    • 返回浏览器并按APP SIGNING PRIVATE KEY按钮并浏览到计算机上的私钥位置 .

    完成!

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

相关问题