Rog*_*rat 8 xcode xcodebuild xcode4
我正在尝试使用xcodebuild进行命令行构建时设置#define宏并且没有运气.
我已经尝试过-DMYMACRO=1
,MYMACRO=1
我能想到的其他一切都没有用.
如何从命令行设置#define?
Bry*_*ial 26
罗杰,
您正在寻找的是通过命令行工具xcodebuild设置GCC_PREPROCESSOR_MACROS的方法.xcodebuild的手册页显示了应用这些设置的格式,但是SYNOPSIS部分仅将其称为"setting = value ..."
Run Code Online (Sandbox Code Playgroud)xcodebuild [-project projectname] -scheme schemename [-configuration configurationname] [-sdk [sdkfullpath | sdkname]] [buildaction ...] [setting=value ...] [-userdefault=value ...] xcodebuild -workspace workspacename -scheme schemename [-configuration configurationname] [-sdk [sdkfullpath | sdkname]] [buildaction ...] [setting=value ...] [-userdefault=value ...]
最终,您可以使用此格式直接在命令行上设置任何构建设置值,并了解您希望更改的实际构建设置名称.当然,这提出了一个问题......
如何找到构建设置名称?
很高兴你问!Xcode 4的侧边栏是查找实际命令行构建设置名称的最简单方法.
在查找构建设置名称时,Xcode 4的Utilities侧边栏的快速帮助检查器是可以查看的地方.
或者,使用Option + Command + 2直接显示快速帮助检查器!
最后,您已准备好找到您的构建设置:
对于您最初询问的预处理器宏设置,该设置为:
GCC_PREPROCESSOR_DEFINITIONS
将其重新拉回原始问题,您只需提供SETTING_NAME ='DESIRED_VALUE'以及其余的xcodebuild命令,即可在命令行上设置此构建设置.在一个快速的小测试项目的情况下,我把所谓的'TestApp'放在一起,我希望将预处理器宏'BKM'设置为值1,我的xcodebuild命令将是:
xcodebuild -project TestApp.xcodeproj -scheme TestApp GCC_PREPROCESSOR_DEFINITIONS ='$ {inherited} BKM = 1'
为什么你坚持$ {inherited}?
如果您使用的是预处理器宏,那么您可能拥有多个正在使用的宏.其中一些您可能不想从命令行更改,但仍编码到目标或项目的构建设置中.使用'$ {inherited}'指示xcodebuild也使用更高级别定义的构建设置,而不是仅使用我们在xcodebuild命令中定义的构建设置.在大多数情况下,您需要使用$ {inherited}来提取您已设置的任何其他配置值.
我是否必须将值包装在撇号中?
如果要设置多个值,则是,您将需要将值包装在撇号中,否则如果从命令行设置两个或更多预处理器宏,则第二个+ +将被解释为构建设置而不是预处理器宏......不太正确的行为.撇号充当一种为设置收集多个值的方法.在我的示例xcodebuild命令的情况下,我想让xcodebuild使用继承的一组预处理器宏以及我的特定BKM设置,因此我将值包装在撇号中以告诉xcodebuild将它们都视为预处理器宏.
这也适用于Workspaces吗?
绝对!只需修改命令即可使用-workspace参数而不是-project参数,您将开始营业!
归档时间: |
|
查看次数: |
5519 次 |
最近记录: |