xcode用于同一目标上的设备与模拟器的不同链接器/ cflags?

时间:2010-06-22 19:19:24

标签: iphone xcode

任何人都知道是否有可能在xcode中的同一构建目标上为模拟器与设备设置不同的cflags /链接器标志。

1 个答案:

答案 0 :(得分:8)

在.xcconfig文件中,您可以拥有

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

任何构建设置都可以以多种方式为条件,例如sdk的短名称。例如,设备SDK名为iphoneos-4.0,而sim iphonesimulator-4.0。因此,上面的设备为CFLAG为'foobar',为sim提供'barfoo'。

快速开始使用xcconfigs:

  1. 新文件>其他>配置设置文件
  2. 打开项目或目标编辑器(目标编辑器的cmd-alt-E)
  3. 选择要自定义的设置(如cflags),然后使用cmd-c
  4. 进行复制
  5. 粘贴新的xcconfig文件
  6. 按上述方式修改
  7. 在项目或目标编辑器的右下角,选择xcconfig文件为“基于”。
  8. 请注意构建设置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