ios - xcodebuild 命令行 : passing DevelopmentTeam ID for code signing purpose

标签 ios xcode6 xcodebuild

我的应用程序获得了一个用于 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/

相关文章:

ios - 尝试将 CMTime 存储为核心数据上的可转换属性

ios - 搜索结果TableView调整问题

xcode - 未找到 RCT 链接管理器文件

ios - 访问从 xcodebuild 命令行传入的用户定义变量

xcode4 - xcodebuild/Jenkins 找不到 iOS 作业的 PROVISIONING_PROFILE

ios - 如何从cocoapods下载SDK二进制文件

ios - JSQMessageData 追加 Json 数据

ios - 磨砂玻璃(iOS 7 模糊)效果

swift - 尝试以编程方式呈现包含的 View Controller

ios - ibtool 在编译和链接 Storyboard阶段做了什么以及链接 Storyboard的结果如何与可执行文件一起使用?