前阵子公司上了第二个 App,准备打包的时候发现一个问题:苹果开发者账号最多只能创建两个发布类型的证书,手里的团队又不止两个产品,难道每个 App 都要单独做一套证书?翻了苹果后台的说明,又问了同事,结论很简单——多个 App 可以使用同一个 iOS 证书,真正每个 App 单独要做的是描述文件。这篇把证书和 App 的关系拆开讲清楚,再说下共用时的边界。
为什么可以共用
要理解为什么能共用,先分清证书和描述文件的职责。证书解决的是"谁签的名":它代表你的开发者身份,用私钥对 App 做签名,上架后 App Store 里显示的开发者名称来自证书。描述文件解决的是"哪个 App 能用":它把证书、App ID(Bundle ID)和测试设备绑定在一起,一个描述文件对应一个 App ID。证书管身份、描述文件管资格,所以一个证书可以给多个 App 签名,每个 App 各自有对应的描述文件就行。
实操怎么做
实操上,发布证书做一次就够了:用 Appuploader 在证书管理里创建发布证书(iOS Distribution),生成 P12 文件,保存好私钥密码。然后每个 App 单独走一遍描述文件流程:在 Appuploader 里新建描述文件,类型选 App Store(发布用),选择对应的 Bundle ID,有多个 App 就建多个描述文件,每个绑定各自的 App ID。打包时各用各的描述文件、共用同一个证书,上传 App Store 完全没问题。
顺带说下配额的事:苹果对开发证书的数量限制比较宽松,发布证书最多两个,企业账号另有配额。这也是很多团队共用发布证书的原因——不是不想给每个 App 单独做,是配额就这么多,共用反而是标准做法。
个人和公司账号的边界
共用证书有几个边界要拎清。个人和公司类型账号,同一个团队内共用证书没问题,但不建议把证书发给团队外的人打包——用你的证书打包的 App,上架时开发者名称显示的是你或你公司,出了问题责任也在你这边,知识产权也可能受损失。证书只给信得过的人用,别当公共资源发。
企业账号的边界
企业类型账号,技术上可以共享证书给其他人打包,但限制更严:企业证书只允许企业内部使用,不能用于 App Store 上架或互联网安装。拿企业证书签的包对外分发,苹果可能监控到并撤回或封禁证书,已经装到用户设备上的应用会集体掉签。这块的风险比个人账号大得多,别踩。
描述文件不能共用
还有一个常见误区:证书可以共用,P12 的私钥在 Appuploader 里可以跨电脑同步使用,方便团队协作;但描述文件不能通用——每个 App 必须创建单独的描述文件,这是打包时报"描述文件与证书不匹配"时优先排查的点。
总结下来,多个 App 用同一个证书是正常操作,记得三点:证书管身份可以共用,描述文件管资格必须按 App 单独建,账号类型决定了证书能共享到哪一步。