管理应用签名密钥

借助由 Google Play 提供的应用签名服务,您可以安全地管理新应用或现有应用的应用签名密钥。我们会将密钥存储在 Google 存储自己密钥的安全基础架构中。

由 Google Play 提供的应用签名服务如何运作

如果应用使用 Android App Bundle

如果应用使用了 App Bundle,则需要采用由 Google Play 提供的应用签名。选择采用应用签名后,请执行以下操作:

  1. 为您的 app bundle 签名,并将其上传到您的 Play 管理中心。
  2. Google 会验证您的签名、移除签名,并处理该 app bundle 以生成基本 APK、配置 APK 和动态功能 APK(如果适用)。要了解详细信息,请访问 Android 开发者网站
  3. Google 会使用您提供的原始应用签名密钥重新为 APK 签名,再将应用提供给用户。

Google 不会为已使用应用签名密钥签名的现有 APK 或新 APK 重新签名。这可让您直接在开放式测试轨道、封闭式测试轨道或内部测试轨道中测试您的 app bundle,同时继续在正式版中发布现有 APK,而不会被 Google Play 更改。

如果您使用上传密钥为您的 APK 签名并上传,Google 会使用您的部署密钥为该 APK 重新签名。

如果应用使用 APK

当您上传 APK 时,由 Google Play 提供的应用签名服务则是一个自愿加入的计划。如果您愿意,也可以选择继续自行管理密钥。

如果您丢失了密钥存储区或认为它可能已损坏,由 Google Play 提供的应用签名服务可让您请求重置您的上传密钥。如果您没有注册由 Google Play 提供的应用签名服务并且丢失了密钥存储区,则必须使用新软件包名称发布新应用。

权限和访问权限

如果您是 Play 管理中心帐号的所有者,或者是具有全局“管理正式版”权限的用户,可以选择加入由 Google Play 提供的应用签名服务计划。您需要分别针对每个开发者帐号接受一次服务条款。接受相关条款之后,您就可以为各个应用注册该计划了。

注意:接受《服务条款》并不代表与您的开发者帐号相关联的所有应用会自动注册应用签名计划。

密钥类型和重要定义

  • 应用签名密钥:用于为用户设备上的 APK 签名的密钥。应用签名密钥目前由您保管,您用它来为 APK 签名。在完成该计划的注册流程后,您将把此密钥上传到 Google。

  • 上传密钥(现有应用可选择是否使用):在您注册计划的流程中生成的新密钥。以后,您将任何 APK 上传到 Play 管理中心之前都要先使用上传密钥为其签名。
  • 私钥:在 APK 签名流程中用于为 APK 签名的密钥。私钥必须保密。
  • 公钥:在 APK 签名流程中用于验证 APK 签名的密钥。公钥将会显示给所有人。
  • 证书:证书包含公钥和关于密钥所有者的一些额外识别信息。
  • PEPK 工具:Play Encrypt Private Key 是一项工具,可用于从 Java 密钥存储区中导出私钥,以及对私钥加密以便传输到 Google Play。

提示和最佳做法

  • 为了保护您的开发者帐号,我们建议您针对可访问您的 Play 管理中心的所有帐号开启两步验证
  • 如果您想要测试通过上传密钥签名的 APK,则必须向使用您应用的签名进行身份验证的任何服务或 API(例如 Google Maps API 或 Facebook SDK)注册您的上传密钥。如果您使用任何 Google API,我们建议您在 Google 云端控制台为您的应用注册上传证书。

概览

在开始之前,请访问 Android 开发者博客,观看应用签名概览视频。

新应用

第 1 步:创建上传密钥
  1. 要为新应用创建上传密钥,请按为您的应用签名中的说明进行操作。
  2. 使用上传密钥为新 APK 签名。

上传密钥简介

  • 上传密钥只会在 Google 中注册,我们会用它来验证应用创建者的身份。
  • 在将您上传的任何 APK 发布给用户之前,我们都会从中移除您的签名。

上传密钥限制

  • 上传密钥必须为不小于 2048 位的 RSA 密钥。
  • 我们不支持以下类型的密钥:DSA 密钥、EC 密钥或小于 2048 位的 RSA 密钥。
第 2 步:准备应用版本
  1. 转到您的 Play 管理中心
  2. 选择相应的应用。
  3. 在左侧菜单中,依次选择版本管理应用版本
  4. 在“由 Google Play 提供的应用签名”旁边,选择接受
第 3 步:上传已签名的应用
  1. 按照相应步骤准备和发布版本
  2. 在将应用发布给用户之前,Google Play 会移除您的上传密钥签名并使用新密钥重新为应用签名。
第 4 步:向 API 提供商注册应用签名密钥

如果您的应用使用任何 API,您通常需要注册 Google 用于为应用签名的密钥所对应的证书,以进行身份验证。通常通过证书的指纹来完成注册流程。

要查找 Google 用于为要发布的 APK 重新签名的密钥所对应的证书,请按以下步骤操作:

  1. 登录您的 Play 管理中心
  2. 选择相应的应用。
  3. 在左侧菜单中,依次点击版本管理 > 应用签名
  4. 在此页面中,您可以复制应用签名证书的最常用指纹(MD5、SHA-1 和 SHA-256)。如果 API 提供商需要其他类型的指纹,您也可以下载 DER 格式的原始证书,并通过 API 提供商要求的转换工具运行该证书。

现有应用

第 1 步:选择加入计划

要选择将应用加入计划,请按以下步骤操作:

  1. 登录您的 Play 管理中心
  2. 选择相应的应用。
  3. 在左侧菜单中,依次点击版本管理 > 应用签名
  4. 查看服务条款,然后选择接受
第 2 步:将原始密钥发送给 Google 以及创建上传密钥

要将原始密钥上传到 Google 并创建上传密钥,请按以下步骤操作:

  1. 找到您的原始应用签名密钥。
  2. 登录您的 Play 管理中心
  3. 选择相应的应用。
  4. 在左侧菜单中,依次点击版本管理 > 应用签名
  5. 按照屏幕上的说明传输您的原始应用签名密钥。
    • 可选:您也可以生成上传密钥,再向 Google 注册该密钥。
  6. 在接下来显示的屏幕上,您会看到应用证书的指纹。

上传密钥简介

  • 上传密钥只会在 Google 中注册,我们会用它来验证应用创建者的身份。
  • 在将您上传的任何 APK 发布给用户之前,我们都会从中移除您的上传密钥。

上传密钥限制

  • 上传密钥必须为不小于 2048 位的 RSA 密钥。
  • 我们不支持以下类型的密钥:DSA 密钥、EC 密钥或小于 2048 位的 RSA 密钥。

如果您创建了上传密钥,可按以下可选步骤操作

第 3 步:更新密钥存储区

创建上传密钥后,请更新您的密钥存储区。例如,您可能需要检查以下位置:

  • 本地计算机
  • 上锁保护的现场服务器(变化的 ACL)
  • 云计算机(变化的 ACL)
  • 专属机密管理服务
  • (Git) 存储区
第 4 步:使用上传密钥为您的下一次应用更新签名

现在,现有应用的所有更新都必须使用上传密钥签名。这有助于 Google 验证您的身份。在将更新发布给用户之前,Google 会为您的 APK 重新签名。

要查找应用的上传密钥,请按以下步骤操作:

  1. 登录您的 Play 管理中心
  2. 选择相应的应用。
  3. 在左侧菜单中,依次点击版本管理 > 应用签名

创建新上传密钥

如果您已注册应用签名服务,则可以在以下情况下创建新的上传密钥:

  • 您丢失了自己的私钥
  • 您的私钥已损坏
  • 您最初没有为现有应用创建上传密钥

注意:重置上传密钥不会影响 Google Play 在您向用户提供 APK 之前用于对 APK 重新签名的应用签名密钥。

第 1 步:生成新私钥和上传证书

要生成并注册新的上传密钥,请按照 Android Studio 帮助中心内的说明操作。新密钥不能与之前的密钥相同。

然后,将新密钥的证书导出为 PEM 格式:

keytool -export -rfc -alias <upload> -file <upload_certificate.pem> -keystore <keystore.jks>

第 2 步:与我们的支持团队联系

我们的支持团队只接受来自 Play 管理中心帐号所有者的密钥重置请求。

帐号所有者可以通过填写此表单与我们联系。请务必附上 upload_certificate.pem 文件。

我们注册新的上传密钥后,会立即向您发送电子邮件。届时,您可以按照上述步骤更新您的密钥存储区以及 API 提供商注册信息

本文是否对您有帮助?
您有什么改进建议?