我的App为App Store分发提供了一个bundleID.该应用程序还有一个用于企业分发的小变体,因此具有另一个bundleID.自动构建使用以下命令行来设置bundleID并选择正确的签名标识:
xcodebuild -project XYZ.xcodeproj -target XYZ -sdk "iphoneos" -configuration "Debug" BUNDLE_IDENTIFIER=<bundleID_1_or_2> CODE_SIGN_IDENTITY="<identify_1_or_2" build
Run Code Online (Sandbox Code Playgroud)
这种自动构建一直很好,直到最近我启用了iCloud功能.现在Xcode自动将以下内容添加到project.pbxproj:
TargetAttributes = {
QWERTY1234567890123456 = {
DevelopmentTeam = XYZ123456;
SystemCapabilities = {
com.apple.iCloud = {
enabled = 1;
};
};
};
};
Run Code Online (Sandbox Code Playgroud)
注意添加了一个硬编码的"DevelopmentTeam = XYZ123456"; 对于这两个版本,DevelopmentTeam ID是不同的.如何自动化?一个更简单的解决方案是在调用xcodebuild之前有一个脚本来修改project.pbxproj,但我不是那个解决方案的粉丝.接下来最好的是创建一个新的"用户定义的设置",从而通过命令行传递它,但我无法弄清楚如何将用户定义的设置与嵌入在project.pbxproj中的那个DevelopmentTeam ID相关联.