设置Xcode构建设置终端

时间:2015-09-23 14:59:07

标签: xcode terminal continuous-integration xcodebuild xcode-server

我想在不使用Xcode IDE的情况下更改.xcodeproj的构建设置,而是通过终端命令(准确地将代码签名和配置文件进行编码)。

我已经搜索了所有但只找到了从终端构建/存档项目的命令,我不想要。我想要的只是更改设置,以便在我打开时在Xcode项目中,它的签名身份和配置文件设置为我在终端中设置的内容。

Xcodebuild命令只是使用我传递的参数来构建/存档项目,它不会将它们设置为项目构建设置中的值。

在我的项目所在的终端中运行xcodebuild -target <target-name> -showBuildSettings,为我提供了项目的完整构建设置,但我没有得到任何方法来设置它们。

另外,我读了here关于使用-setObject的内容,但这对我没有帮助,因为它还使用我给出的参数值构建代码,而不是实际设置它们。

目前使用Xcode 6.3和Xcode 7。

任何形式的帮助都将受到赞赏。

1 个答案:

答案 0 :(得分:3)

所有Xcode设置实际上都存储在<project-name>.xcodeproj/project.pbxproj中。 它看起来像

buildSettings = {
    CODE_SIGN_ENTITLEMENTS = "";
    CODE_SIGN_IDENTITY = "iPhone Developer";
    "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";

    ...

    PRODUCT_NAME = "$(TARGET_NAME)";
    PROVISIONING_PROFILE = "";
    SKIP_INSTALL = YES;
};

代码签名身份CODE_SIGN_IDENTITY密钥控制,配置文件PROVISIONING_PROFILE密钥控制。

project.pbxproj是一个文本文件,可以通过CLI中的传统文本处理工具进行编辑,例如 sed with

sed -ie 's/CODE_SIGN_IDENTITY = "iPhone Developer"/CODE_SIGN_IDENTITY = ""/g' <project-name>.xcodeproj/project.pbxproj
sed -ie 's/PROVISIONING_PROFILE = ""/PROVISIONING_PROFILE = "1c28c979-6bef-4917-aa34-92aecd91315c";/g' <project-name>.xcodeproj/project.pbxproj

您可以使用

获取可用的签名身份列表
security find-identity -v -p codesigning

对于PROVISIONING_PROFILE,它是配置文件的 UUID ,可以使用

获取
grep -aA1 UUID /path/to/mobileprovision