Codemagic分发Flutter应用时自动与手动iOS签名均失败如何解决
错误根因
从构建日志的核心报错security: SecKeychainItemImport: MAC verification failed during PKCS12 import (wrong password?)可直接定位:你上传的.p12格式iOS分发证书,导入时使用的密码不匹配。
解决步骤
- 优先核对密码:确认你导出p12证书时设置的密码,和CI环境中配置的
CERTIFICATE_PASSWORD环境变量值完全一致,注意区分大小写、不要带多余的首尾空格,包含特殊字符的要确认转义规则符合CI平台要求。 - 重新导出p12证书:如果确认密码填写正确,打开Mac端的钥匙串访问,找到对应的iOS分发证书,展开后同时选中证书本身和绑定的专用密钥,右键重新导出p12文件,设置好记的密码后,替换CI平台上旧的证书文件。
- 排查环境变量配置:确认CI项目中
CERTIFICATE_PASSWORD变量的拼写正确、作用范围覆盖了你当前的构建分支,没有被其他分支的变量配置覆盖。 - 验证证书有效性:确认对应的分发证书没有在苹果开发者后台被吊销、没有过期,绑定的开发者账号权限正常。
本地验证方法
你可以在本地Mac终端执行以下命令,提前验证p12文件和密码是否匹配:
security import 你的证书文件路径.p12 -k ~/Library/Keychains/login.keychain -P 你设置的密码 -T /usr/bin/codesign
命令执行报错说明p12文件或密码本身有问题,执行成功则说明问题出在CI侧的变量配置。
内容的提问来源于stack exchange,提问作者Rogerio
相关产品推荐
相关产品推荐

