10

我目前正在使用xcodebuild自动化测试 iOS。

现在,我一直试图通过 Xcode 将编译器标志直接传递给编译器。这些标志是:-fprofile-arcs -ftest-coverage.

我没有修改 xcodeproj 的自由,这就是为什么我想通过 xcodebuild 命令注入这些标志。

它会是这样的:

xcodebuild -project path/to/my.xcodeproj -scheme MyApp -fprofile-arcs -ftest-coverage

这可行吗?如何?

4

3 回答 3

8

显然大多数编译器标志都可以表示为常量,并且可以通过 xcodebuild 轻松地将它们传递给编译器。

要获得它们,只需在 xcode 构建设置视图中选择选项,然后点击 command-C(复制)。就我而言,它们是GCC_GENERATE_TEST_COVERAGE_FILESGCC_INSTRUMENT_PROGRAM_FLOW_ARCS

我的命令大致如下所示:

xcodebuild GCC_GENERATE_TEST_COVERAGE_FILES=YES GCC_INSTRUMENT_PROGRAM_FLOW_ARCS=YES ...
于 2013-08-07T15:10:21.183 回答
5

要使用 设置编译器标志xcodebuild,您需要将它们放在 OTHERCFLAGS 选项中。

例如:

xcodebuild -project path/to/my.xcodeproj -scheme MyApp \
    OTHERCFLAGS="-fprofile-arcs -ftest-coverage"
于 2016-06-17T20:57:48.933 回答
2

是的,所有编译器设置实际上都归结为字符串键值对。我回答了一个关于从命令行设置预处理器宏的非常相似的问题,该问题同样适用于您要设置的这些设置:

在 xcode 4.6 中从命令行设置 #define

我还想提请注意 ${inherited} 的使用——使用此值允许您使用 Xcode 项目指定的值并附加您自己的值。可以在此处找到每个构建设置的文档,包括您通过复制粘贴找到的文档:

http://developer.apple.com/library/mac/documentation/DeveloperTools/Reference/XcodeBuildSettingRef/1-Build_Setting_Reference/build_setting_ref.html

很高兴你能够让它工作——现在你真的可以让 xcodebuild 为你做更多的事情,而无需更改目标 Xcode 项目!

于 2013-08-11T05:54:48.977 回答