平台打包与签名

自动关联目录:平台打包与签名

技术侧的打包流程见 Cook 与打包流程;本篇只讲发布相关的签名与平台配置。

1. 定位

签名是"能不能装上去"的门槛:证书不对、过期、或配置错了,包本身再好也发不出去。

一句话定位:签名相关的事项必须提前很久处理——证书申请有审核周期,临时抱佛脚会直接卡住发布。

2. 常见平台要点

平台关键项
iOS开发者账号、证书、Provisioning Profile、Bundle ID、设备/分发类型
AndroidKeystore(一旦丢失无法更新)、包名、版本号、ABI 与分包
主机厂商流程与授权,周期更长
Windows可选的代码签名证书

Android 的 Keystore 必须安全备份——丢失意味着无法再向同一应用发布更新。这是移动端发布里最严重的一次性风险。

3. 版本号与元数据

项说明
版本名 / 版本号商店与更新判断依据,要随发布递增
包名 / Bundle ID唯一标识,发布后不可改
图标与截图商店要求
权限声明商店与系统要求
目标 SDK 版本商店有最低要求,且会随时间提高

4. 与打包流程的关系

阶段说明
Cook转平台格式(见 Cook 与打包流程)
Stage / Package组装(同上)
签名平台侧的最后一步
分发产物APK / AAB / IPA 等

5. 代价与权衡

设计收益代价什么时候不该用
正式证书 + 安全备份可持续发布申请与保管成本从不做——这是必须的
AAB / 分包主包更小构建与分发流程更复杂小包体游戏可省
自动化签名流水线减少人为失误要配置与保管凭据手动签名易出错
调试证书临时顶替快不能发布仅开发用

6. 踩坑与排查

坑现象怎么验证
证书过期发布当天才发现提前检查有效期
Keystore 丢失无法更新备份与权限管理
包名/Bundle ID 不一致上架被拒或无法更新核对
版本号没递增商店不接受发布流程里自动递增
用了调试签名无法上架区分构建配置
目标 SDK 版本过低商店拒绝关注商店要求
权限声明缺失运行时崩溃或被拒核对权限

7. 排查顺序

1. 证书/Keystore 是否在有效期内且已备份?
2. 包名/Bundle ID 是否与线上一致?
3. 版本号是否递增?
4. 是否用的正式签名配置?
5. 商店的 SDK/权限要求是否满足?
6. 签名流程是否自动化(减少人为失误)?

参考