P12 证书和描述文件不匹配?如何检查两者是否配套

签名时报证书与描述文件不匹配?讲清 P12 与 mobileprovision 的对应关系:证书须在描述文件 DeveloperCertificates 中、Bundle ID 与 Team ID 要一致,教你用 7cert 快速核对。

7cert · 更新于

为什么要配套

iOS 签名需要两样东西:P12(证书 + 私钥)和描述文件。描述文件里写死了允许签名的证书列表,如果 P12 里的证书不在列表中,签出来的 App 无法安装,签名工具也常报 “证书与描述文件不匹配”。

匹配要满足的条件

  1. 证书一致:P12 中证书的序列号/指纹出现在描述文件的 DeveloperCertificates 里。
  2. 团队一致:证书的团队 ID(OU)与描述文件的 TeamIdentifier 相同。
  3. 类型一致:开发证书配 Development 描述文件;发布/企业证书配 Ad Hoc、App Store 或 Enterprise 描述文件。
  4. Bundle ID 符合:要签的 App 的 Bundle ID 与描述文件 App ID 相同,或描述文件为通配符 *。
  5. 都在有效期且证书未吊销。

用 7cert 核对

  1. 在 7cert 先上传 P12(输入密码),记下证书名称、序列号、SHA1 指纹和团队 ID。
  2. 再上传描述文件,查看其包含的证书列表,对照序列号/指纹是否有一致的一项,同时核对团队 ID、类型和 Bundle ID。
  3. 两边都确认 OCSP 状态为正常、未过期。

如果是已签名的 IPA,直接上传 IPA,7cert 会列出内嵌描述文件里的全部证书并标出实际签名证书,一眼就能看出是否配套。

常见问题

一个描述文件可以对应多张证书吗?

可以。生成描述文件时可勾选多张同类型证书,任意一张对应的 P12 都能用它签名。

证书重新创建后旧描述文件还能用吗?

不能。新证书不在旧描述文件的证书列表中,需要重新生成(或编辑后重新下载)描述文件。

通配符描述文件有什么限制?

通配符 App ID 不能启用推送等部分需要明确 App ID 的权限。

马上检测:上传 P12、描述文件(.mobileprovision)或 IPA 到 7cert,免费查看证书信息与吊销状态,文件检测完即销毁。

相关教程