Xcode 8、xcodebuild、多个 bundle ID 和 Provisioning Profiles
Posted
技术标签:
【中文标题】Xcode 8、xcodebuild、多个 bundle ID 和 Provisioning Profiles【英文标题】:Xcode 8, xcodebuild, multiple bundle ID and Provisioning Profiles 【发布时间】:2017-08-26 06:34:43 【问题描述】:首先我必须说,如果我使用 Xcode 构建,一切都很好。我的目标是将 xcodebuild 与 Jenkins 一起使用,以便我可以在多个环境中自动构建。我真的很困惑 Xcode 8 如何与自动签名一起工作。
我首先看这个:Use xcodebuild (Xcode 8) and automatic signing in CI (Travis/Jenkins) environments
当我这样做时,事情开始起作用了。但是,现在当我添加新的捆绑包 ID 和 PP 时,我开始收到以下错误。此外,以前的构建 ID 也不起作用:
建筑
23:06:50 检查依赖关系
23:06:50 [BCEROR]未找到“com.x.y.z”的配置文件:Xcode 找不到匹配“com.x.y.z”的配置文件。
23:06:50 [BCEROR]SDK“ios 10.3”中的产品类型“应用程序”需要代码签名
存档
23:06:51 未找到“com.x.y.z”的配置文件:Xcode 找不到匹配“com.x.y.z”的配置文件。
23:06:51 SDK“iOS 10.3”中的产品类型“应用程序”需要代码签名
23:06:51 ** 存档失败 **
这就是我正在做的:
#if the directory exist, run the command
if [ -d "~/Library/Developer/Xcode/DerivedData" ]; then
xattr -rc ~/Library/Developer/Xcode/DerivedData
fi
#Unlock keychain
security unlock-keychain -p xxx ~/Library/Keychains/login.keychain
#Build .xarchive
xcodebuild -project $WORKSPACE/PATH.xcodeproj \
-scheme X \
-configuration Release \
clean \
archive -archivePath $WORKSPACE/.../archive.xcarchive \
DEVELOPMENT_TEAM=XXX
#Unlock keychain
security unlock-keychain -p x ~/Library/Keychains/login.keychain
#Exporting to .ipa
xcodebuild -exportArchive -archivePath $WORKSPACE/XXX/archive.xcarchive \
-exportOptionsPlist /XXXX/exportOptions.plist \
-exportPath $WORKSPACE/XXXX/Output/$Environment \
PROVISIONING_PROFILE_SPECIFIER="ENVIRONMENT_PP"
【问题讨论】:
您是否尝试使用 xcode 进行归档构建以确认机器上安装了所有必需的配置文件和证书? 是的,我去了 Xcode -> 首选项 -> 帐户 -> 在每个团队中,下载所有配置文件 您是否尝试过使用 Xcode 进行归档构建? 我可以使用自动签名 【参考方案1】:所以我使用 Unity 来生成 xcode 项目。我做了什么来解决它:
在 Unity 中,禁用自动签名并指定 Provisioning 配置文件散列,(我从编辑器视图中获取散列,并将值复制到脚本中):
private static readonly string UDIDProfileHash = "HASH";
PlayerSettings.iOS.appleEnableAutomaticSigning = false;
PlayerSettings.iOS.appleDeveloperTeamID = "TEAMID";
PlayerSettings.iOS.iOSManualProvisioningProfileID = UDIDProfileHash;
对于 Xcodebuild 语法,我删除了指定配置文件:
PROVISIONING_PROFILE_SPECIFIER="ENVIRONMENT_PP"
【讨论】:
以上是关于Xcode 8、xcodebuild、多个 bundle ID 和 Provisioning Profiles的主要内容,如果未能解决你的问题,请参考以下文章
xcodebuild:使用升级到 XCode 8.1 后出现“需要代码签名”错误
在 CI (Travis/Jenkins) 环境中使用 xcodebuild (Xcode 8) 和自动签名