我的公司使用一台构建机器(Mac Mini)作为 CI 节点来构建我们的 iOS 应用程序。我们目前在 mini 上构建了 Ad-Hoc 和 App Store 配置。我们最近加入了企业计划,并希望开始构建企业配置。但是,我们的构建过程现在失败了,因为我们现在有两个名为“iPhone Distribution: Widget Corporation”的证书。一个是 AdHoc/AppStore 的分发证书,一个是 Enterprise(Apple 称之为 In-House)的分发证书。
我尝试修改 mini 的钥匙串,使一个证书在登录钥匙串中,一个在名为“企业”的新钥匙串中,但这只是从构建开始时转移了错误:
CodeSign error: Certificate identity 'iPhone Distribution: Widget Corporation' appears more than once in the keychain.
到构建结束:
iPhone Distribution: Widget Corporation: ambiguous (matches "iPhone Distribution: Widget Corporation" in /Users/hudson.admin/Library/Keychains/login.keychain and "iPhone Distribution: Widget Corporation" in /Users/hudson.admin/Library/Keychains/enterprise.keychain)
我的问题是,是否有办法正确地将这两个证书沙箱化,以便我可以在同一台机器上构建应用程序的 Ad-Hoc、App Store 和内部版本。我还没有尝试过的唯一可能的解决方案是将证书与源代码捆绑在一起,并根据security
需要添加和删除证书;显然,该解决方案不是很漂亮并且会带来安全风险。
有任何想法吗?