gpt4 book ai didi

objective-c - Developer 和 Enterprise Distribution 之间的 CodeSign 冲突

转载 作者:IT王子 更新时间:2023-10-29 08:05:33 25 4
gpt4 key购买 nike

我的公司使用一台构建机器(Mac Mini)作为 CI 节点来构建我们的 iOS 应用程序。我们目前在 mini 上构建了一个 Ad-Hoc 和一个 App Store 配置。我们最近注册了企业计划,也想开始构建企业配置。但是,我们的构建过程现在失败了,因为我们现在有两个名为“iPhone Distribution: Widget Corporation”的证书。一种是针对 AdHoc/AppStore 的分发证书,一种是针对企业的(Apple 称之为 In-House)。

我尝试修改 mini 的钥匙串(keychain),使一个证书在登录钥匙串(keychain)中,一个在名为“企业”的新钥匙串(keychain)中,但这只是从构建开始就转移了错误:

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 添加和删除证书;显然,该解决方案不是很漂亮并且会带来安全风险。

有什么想法吗?

最佳答案

在与 Apple Developer Technical Support 讨论后,他们建议创建单独的钥匙串(keychain)来存放不同的证书,然后将 --keychain filename 参数传递到 codesign 步骤指向适当的文件。您可以使用 OTHER_CODE_SIGN_FLAGS 选项将此参数传递到 Xcode 或 xcodebuild。例如:

xcodebuild -target "<targetname>" -configuration "<configname>" \
PROVISIONING_PROFILE=A3A47A82-E91F-4E95-8559-601C6C857053 \
OTHER_CODE_SIGN_FLAGS="--keychain=/Users/username/Library/Keychains/enterprise.keychain" \
build

此外,在创建新钥匙串(keychain)后,它似乎默认在 5 分钟后重新锁定 - 如果您的构建需要一段时间,您可能想要更改此设置。

关于objective-c - Developer 和 Enterprise Distribution 之间的 CodeSign 冲突,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5158942/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com