P12 证书和描述文件不匹配?如何检查两者是否配套
签名时报证书与描述文件不匹配?讲清 P12 与 mobileprovision 的对应关系:证书须在描述文件 DeveloperCertificates 中、Bundle ID 与 Team ID 要一致,教你用 7cert 快速核对。
7cert · 更新于
为什么要配套
iOS 签名需要两样东西:P12(证书 + 私钥)和描述文件。描述文件里写死了允许签名的证书列表,如果 P12 里的证书不在列表中,签出来的 App 无法安装,签名工具也常报 “证书与描述文件不匹配”。
匹配要满足的条件
- 证书一致:P12 中证书的序列号/指纹出现在描述文件的 DeveloperCertificates 里。
- 团队一致:证书的团队 ID(OU)与描述文件的 TeamIdentifier 相同。
- 类型一致:开发证书配 Development 描述文件;发布/企业证书配 Ad Hoc、App Store 或 Enterprise 描述文件。
- Bundle ID 符合:要签的 App 的 Bundle ID 与描述文件 App ID 相同,或描述文件为通配符
*。 - 都在有效期且证书未吊销。
用 7cert 核对
- 在 7cert 先上传 P12(输入密码),记下证书名称、序列号、SHA1 指纹和团队 ID。
- 再上传描述文件,查看其包含的证书列表,对照序列号/指纹是否有一致的一项,同时核对团队 ID、类型和 Bundle ID。
- 两边都确认 OCSP 状态为正常、未过期。
如果是已签名的 IPA,直接上传 IPA,7cert 会列出内嵌描述文件里的全部证书并标出实际签名证书,一眼就能看出是否配套。
常见问题
一个描述文件可以对应多张证书吗?
可以。生成描述文件时可勾选多张同类型证书,任意一张对应的 P12 都能用它签名。
证书重新创建后旧描述文件还能用吗?
不能。新证书不在旧描述文件的证书列表中,需要重新生成(或编辑后重新下载)描述文件。
通配符描述文件有什么限制?
通配符 App ID 不能启用推送等部分需要明确 App ID 的权限。