xcode不同的连接器/ cflags的设备与模拟器在同一目标?

xcode不同的连接器/ cflags的设备与模拟器在同一目标?

问题描述:

任何人都知道是否可以在xcode中为同一个构建目标上的模拟器vs设备设置不同的cflags/linker标志。xcode不同的连接器/ cflags的设备与模拟器在同一目标?

在.xcconfig文件,你可以有

OTHER_CFLAGS[sdk=iphoneos*] = foobar 
OTHER_CFLAGS[sdk=iphonesimulator*] = barfoo 

任何构建设置可以是有条件的一些事情,例如用于SDK中的短名称。例如,设备SDK名称为iphoneos-4.0,而sim iphonehonesimulator-4.0。因此,上述设备为您提供了'foobar'作为CFLAG,以及sim'barfoo'。

要尽快开始使用xcconfigs:

  1. 新文件>其它>配置设置文件
  2. 打开项目或目标编辑器(CMD-ALT-E的目标之一)
  3. 选择设置要自定义(如CFLAGS),并用CMD-C
  4. 修改复制
  5. 粘贴在新xcconfig文件如上
  6. 在您的项目或目标编辑器的右下角,选择xcconfig文件为“Based On”。

请注意构建设置UI现在如何让您编辑条件...您可以使用左下角按钮创建新条件,但不会让您设置“iphoneos *”,例如,仅限特定版本。

注意(继承)的神奇$让你做一个继承的项目设置,但覆盖的只是一部分,像这样的设置:

OTHER_CFLAGS[sdk=iphoneos*] = $(inherited) foobar 
OTHER_CFLAGS[sdk=iphonesimulator*] = $(inherited) barfoo 

我不知道xcconfigs一个很好的资源,但这会让你无论如何开始:http://robnapier.net/blog/build-system-1-build-panel-360#more-360

+0

哈我刚刚读到,thx!正是我需要的。 – drunknbass 2010-06-22 23:12:51

+0

在我的下拉菜单中执行此操作后,我失去了为模拟器生成的选项:/知道一种可以让该选项恢复的方法吗? – drunknbass 2010-06-22 23:26:21

+0

好的结果是xcode不喜欢在xcconfig文件中设置BASE_SDK。如果你完全从构建设置中删除它,下拉不会让你选择basedk编译的对象(模拟器或设备) – drunknbass 2010-06-23 03:49:35