【发布时间】:2011-07-06 17:56:52
【问题描述】:
我的公司使用一台构建机器(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 和 In-House 版本。我尚未尝试的唯一可能的解决方案是将证书与源代码捆绑在一起,并使用security 根据需要添加和删除证书;显然,该解决方案不是很漂亮,并且会带来安全风险。
有什么想法吗?
【问题讨论】:
-
我已将这个问题作为 TSI 提交给 Apple。如果我得到一个,我会更新他们的答案。
标签: objective-c ios continuous-integration hudson codesign