有时候,通过 xcode 可以正常编译打包 iOS 工程,但通过命令行执行相同操作,则会报错,说找不到证书。
主要原因是,xcode编译打包时,在签名过程中会弹出提示,问你是否要授权它访问 keychain,一般我们会点“Always Allow”,而通过 Terminal 去执行 xcodebuild 命令时,则因为没有授权,无法访问 keychain,只需在 keychain 中增加对 terminal 的授权或改为 “Always Trust” 和 “Allow All Applications to Access”。
需要注意的是,一般证书会被保存到 login 钥匙串,如果你的mac操作系统执行 xcodebuild 时,当前是 root 用户或不是用来创建证书的那个用户,则无法看到证书。此时需要将证书和共/私钥 一起复制到系统钥匙串,并授权任意程序访问。