昨天苹果开发者证书过期,换了一个新证书,在编译的时候遇到了这个错误:
error: Embedded binary is not signed with the same certificate as the parent app. Verify the embedded binary target's code sign settings match the parent app's.
折腾了一上午也没弄好。然而在别的电脑上,用同样的证书却没有这个问题。经过对比,原来问题出在钥匙串上。
- 因为证书马上到期,我在笔记本上创建了一份CSR,在develop后台上重新添加了一个证书,并重新生成相关provisioning文件。
- 因为旧的证书CI服务器还在使用,为了不影响打包,我并没有吊销旧的证书(事实上我发现旧的证书过期后,苹果的后台会自动删掉它)
- 笔记本上导出p12到开发机。怕避免冲突,我把旧的证书删掉,再导入新的p12。
- 开发机此时每次编译时,都弹出输入管理员密码的框,很烦人。网上有人说把证书改为始终信任就不会弹框
- 编译带扩展的app,从此噩梦开始,怎么改工程都解决不了
最后把钥匙串里面的证书删了,重新导入p12才将其解决。
其实旧的证书没必要删掉再装新证书,过期后xcode会自动切换到新证书。
另外,不要去改证书信任的默认值!不要去改证书信任的默认值!不要去改证书信任的默认值!