我们为appStore版本提供了分发配置文件&一个用于inHouse分发。两者都有相同的公司名称。我们现在遇到的问题是,当我们尝试构建分发时,我们会收到错误:
[BEROR]CodeSign error: Certificate identity 'iPhone Distribution: OurCompanyName' appears more than once in the keychain. The codesign tool requires there only be one.
我们如何解决这个问题?
编辑:我们用来签名的mac用于持续集成(通过Bamboo),因此它意味着无人值守。 这使得切换用户帐户变得不可能......
答案 0 :(得分:4)
解决方案: 我把所有与appstore相关的东西放在登录密钥链中,将企业内容放在一个单独的钥匙串文件中。
在buildscript中,我按如下方式切换:
# 1. Only activate the System and either the Appstore(=login) or Enterprise keychain.
security list-keychains -s $KEYCHAIN_NAME $SYSTEM_KEYCHAIN
# 2. Loop through App Schema's
for APP_SCHEME in ${APP_SCHEMES[@]}; do
echo "--= Processing $APP_SCHEME =--"
xcodebuild -scheme "${APP_SCHEME}" archive
done ### Looping through App Schema's
# 3. Restore login & system keychains
security list-keychains -s $APPSTORE_KEYCHAIN $ENTERPRISE_KEYCHAIN $SYSTEM_KEYCHAIN
答案 1 :(得分:0)
使用两个不同的Mac用户帐户(不同登录)来保存两组不同的证书和条款(两个不同的钥匙串等)。从共享存储库中检查源代码,并在相应的用户帐户中执行最终构建。