2. 前置条件准备

适用场景

前置条件准备是整个应用签名加固流程的起点。在执行任何签名策略变更(如启用 Play 应用签名、迁移上传密钥、更换签名密钥轮换)之前,或在新项目首次接入 Google Play 签名服务时,必须完成以下三项基础检查。本章内容适用于移动端开发团队、CI/CD 运维人员以及应用安全管理人员。

前置条件

  • Google Play 控制台账号:拥有管理员或应用发布负责人角色的账号,具备“应用签名”模块的读写权限。
  • Android Studio:至少 Android Studio Hedgehog (2023.1.1) 或更高版本,且已配置 JDK 17+。
  • 密钥文件:当前正在使用的上传密钥(JKS 或 PEK 格式)及对应的密码、aliash 和有效期信息。

操作步骤

步骤一:Google Play 控制台权限检查

  1. 登录 play.google.com/console,进入目标应用。
  2. 点击左侧导航栏“设置”→“应用完整性”→“应用签名”。
  3. 确认页面顶部提示栏未出现“无权查看”或“需联系帐号管理员”字样。
  4. 若需授权,请由管理员在“管理”→“用户和权限”中添加应用发布负责人角色。

步骤二:Android Studio 环境校验

  1. 打开 Android Studio,依次点击Help → About,确认版本号≥2023.1.1。
  2. 运行以下命令检查 JDK 和 keytool 可用性:
java -version
keytool -v
  1. 若 keytool 不存在,需将 JDK/bin 目录添加到系统 PATH 环境变量中。

步骤三:JKS/PEK 密钥文件备份

  1. 定位密钥文件存储路径(例如 ~/.android/upload-keystore.jks 或 ./app/upload_key.pepk)。
  2. 执行以下命令生成时间戳备份副本:
cp upload-keystore.jks upload-keystore_$(date +%Y%m%d).jks
cp upload_key.pepk upload_key_$(date +%Y%m%d).pepk
  1. 验证备份文件 MD5 哈希与原文件一致:
md5sum upload-keystore.jks upload-keystore_$(date +%Y%m%d).jks
  1. 将备份文件安全拷贝至离线存储介质(如加密 U 盘、硬件安全模块),并记录存放位置。

⚠ 安全提醒:JKS/PEK 文件一旦丢失且未备份,将无法在 Google Play 控制台更换上传密钥,可能导致应用发布永久受阻。请严格执行 3-2-1 备份策略(3 份副本,2 种介质,1 份异地)。

输入输出物

类别 输入物 输出物
账号权限 Google Play 控制台管理员角色账号 应用签名页面可见,且可操作
开发环境 Android Studio + JDK 环境版本记录(≥2023.1.1 + JDK 17)
密钥文件 JKS 或 PEK 原文件 带时间戳的备份副本 + MD5 校验记录

责任边界

  • 应用发布负责人:负责提供 Google Play 控制台权限证据及日常签名操作。
  • 安全管理员:负责密钥文件的离线备份策略制定及备份介质保管。
  • 开发工程师:负责 Android Studio 环境安装与维护,确保 keytool 及 JDK 可用。
  • CI/CD 运维:若使用自动化流水线,需确保构建节点已配置 JDK 及密钥路径。

记录材料

  1. Google Play 控制台权限截图(显示“应用签名”可访问)。
  2. Android Studio 版本号截图及 java -version 命令行输出日志。
  3. 密钥文件 MD5 校验记录及备份路径说明文档。

异常处理

异常现象 可能原因 解决方案
应用签名页面显示“无权访问” 帐号缺少发布负责人或管理员角色 联系管理员在“用户和权限”中添加角色
keytool 命令无法识别 JDK/bin 不在 PATH 中 设置环境变量:export PATH=$JAVA_HOME/bin:$PATH
JKS 文件打开提示“无效密钥库格式” 文件损坏或格式非 JKS(可能已被转换为 BKS) 联系安全管理员使用原始备份恢复,或检查文件扩展名/密码是否正确
备份文件 MD5 不匹配 备份过程中磁盘写入出错或文件被修改 重新拷贝并再次校验,必要时使用 sha256sum 双重校验

验收标准

  1. 应用签名页面可正常访问,并显示当前上传密钥 SHA-1 指纹。
  2. Android Studio 中可正常执行 keytool -list -keystore your.jks -storepass yourpassword,并输出密钥列表。
  3. 存在至少一份离线备份副本(非源文件所在目录),且 MD5 一致。
  4. 以上验证结果均已记录并归档。

💡 最佳实践:建议在每次签名操作前都执行一次前置条件检查,并保存 check-list 截图作为审计证据。即使使用 CI/CD 自动化,也应在 pipeline 起始阶段添加环境验证步骤。

前置条件准备流程 开始:前置条件准备 三个并行检查项 Google Play 权限 管理员/发布负责人角色 Android Studio 环境 版本 ≥2023.1.1 密钥文件备份 JKS/PEK + MD5校验 验证签名页面可访问 执行 keytool -list 检查 java 和 keytool Android Studio About cp & md5sum 备份 存储至离线介质 全部通过 → 进入下一章 🏁 汇聚条件 三项检查均通过后,方可进入“启用 Play 应用签名”或“密钥轮换”操作。任一检查失败需返回对应分支修复。