如何在使用xcodebuild时定义预处理器宏?xcodebuild - 如何定义预处理宏?
我需要使用一堆不同的配置来构建我的应用程序,并且我希望使用一个shell脚本来执行此操作,该脚本会使用不同的预处理器宏运行xcodebuild多次。
如何在使用xcodebuild时定义预处理器宏?xcodebuild - 如何定义预处理宏?
我需要使用一堆不同的配置来构建我的应用程序,并且我希望使用一个shell脚本来执行此操作,该脚本会使用不同的预处理器宏运行xcodebuild多次。
Cmd + I在项目上打开“信息”对话框。然后在“Build”选项卡中找到“Preprocessor Macros”设置。 在那里添加宏。
...哪里可以找到设置名称为GCC_PREPROCESSOR_DEFINITIONS
,所以你可以添加
GCC_PREPROCESSOR_DEFINITIONS="foo=bar"
到xcodebuild联编参数。
您在xcodebuild
命令行上通过GCC_PREPROCESSOR_DEFINITIONS
。
请记住,这个参数将被重新评估以用于类似shell的分词和引号处理,所以您需要小心,特别是当您的宏值不仅仅是简单的1
s(例如NSString文字)。
同样重要的是要扩大你的设定值内GCC_PREPROCESSOR_DEFINITIONS
(单引号,这样你的脚本不扩张,但生成的shell扩展的话),否则你会失去你的项目的构建设置该属性。
下面的代码使你定义了一个不错的bash的数组,然后展开在的方式xcodebuild
命令行外壳东西被很好地躲过了数组:
defines=(TESTING=1 '[email protected]"http://192.168.0.101:8080"')
xcodebuild -verbose -scheme "MyAppScheme" \
GCC_PREPROCESSOR_DEFINITIONS='$GCC_PREPROCESSOR_DEFINITIONS '"$(printf '%q ' "${defines[@]}")"
你能告诉我,是否有必要给出一个值,TESTING = 1还是不?有没有相当于#define TESTING的东西? – karim 2013-02-27 09:51:25
好的,我必须使用双引号并删除$值。我曾经,GCC_PREPROCESSOR_DEFINITIONS ='$ value $ {e}',这不起作用,但GCC_PREPROCESSOR_DEFINITIONS =“$ {e}”起作用。 – karim 2013-02-27 10:22:20
@karim我不知道$ e是什么,但我感觉你完全错过了这个答案的要点。此外,定义数组是您放置自定义定义的位置。上面的只是一个例子。很可能你的数组看起来完全不同。 – lhunath 2013-02-28 13:01:13
*使用xcodebuild联编时* – 2010-04-25 14:57:30
我相信什么KennyTM说,一旦安装(使用GUI),xcodebuild就可以正常工作。 – nall 2010-04-25 15:19:39
我在看xcodebuild的选项/标志,甚至没有注意到设置设置是基本用法语法的一部分。谢谢。 – 2010-04-26 19:19:47