我的应用程序获得了一个用于 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
这个自动构建一直运行良好,直到最近我启用了 iCloud 功能。现在 Xcode 自动将以下内容添加到 project.pbxproj:
TargetAttributes = {
QWERTY1234567890123456 = {
DevelopmentTeam = XYZ123456;
SystemCapabilities = {
com.apple.iCloud = {
enabled = 1;
};
};
};
};
注意添加了一个硬编码的“DevelopmentTeam = XYZ123456”;对于这两个构建,DevelopmentTeam ID 是不同的。如何自动化这个?一个更简单的解决方案是在调用 xcodebuild 之前使用脚本来修改 project.pbxproj,但我不喜欢该解决方案。下一个最好的办法是创建一个新的“用户定义的设置”,从而通过命令行传递它,但我无法弄清楚如何将用户定义的设置与嵌入在 project.pbxproj 中的 DevelopmentTeam ID 相关联。
最佳答案
在 Xcode 8 中,这是作为 DEVELOPMENT_TEAM
build设置添加的。
您可以像其他设置一样作为命令行参数传递:
xcodebuild
-sdk "iphoneos"
-project Foo.xcodeproj
-configuration "Debug"
...
DEVELOPMENT_TEAM=XYZ123456
查看有关 Xcode 8 代码签名更改的更多详细信息:https://pewpewthespells.com/blog/migrating_code_signing.html
关于ios - xcodebuild 命令行 : passing DevelopmentTeam ID for code signing purpose,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27973553/