xcode - 设置 Xcode build设置终端

标签 xcode terminal continuous-integration xcodebuild xcode-server

我想在不使用 Xcode IDE 的情况下更改 .xcodeproj 的build设置,而是通过终端命令(确切地说是 Codesigning Identity 和 Provisioning Profile)。

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

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

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

我也读了 here关于使用 -setObject ,但这也没有帮助我,因为它也使用我提供的参数值来构建代码,而不是实际设置它们。

目前使用 Xcode 6.3 和 Xcode 7。

任何形式的帮助将不胜感激。

最佳答案

所有 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 控制 key 。
project.pbxproj是一个文本文件,可以通过CLI中的传统文本处理工具进行编辑,例如 sed
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

关于xcode - 设置 Xcode build设置终端,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32743012/

相关文章:

c++ - 使用 GDB 调试时如何将 std::cin 重定向到 Linux 终端?

git - 如何使用个人访问 token 从 CircleCI 构建推送到 Github 的提交

php - 推荐用于 PHP 项目持续集成的服务器

c - 如何生成给定大小的#define 列表

iphone - 如何向 iPhone 应用程序添加动画?

Xcode ViewController 未在自定义类中显示

macos - 管道和正则表达式 bash 输出

php - ffmpeg-php 和 shell_exec

github - 如何设置 dart.yml 以使用 build_runner 运行测试

iphone - 在 iPhone 上显示启动/加载屏幕的时间更长