【问题标题】:How do I use EXCLUDED_SOURCE_FILE_NAMES in XCode 4 (iOS)如何在 XCode 4 (iOS) 中使用 EXCLUDED_SOURCE_FILE_NAMES
【发布时间】:2011-11-24 02:43:59
【问题描述】:

我在 XCode 中发现了几个对名为 EXCLUDED_SOURCE_FILE_NAMES 的构建设置的引用——下面的模式暗示了它是如何工作的。但我不知道如何在 XCode (4.02) 中使用此选项。

"EXCLUDED_SOURCE_FILE_NAMES[sdk=iphoneos*][arch=*]" = ...

目标是当目标是模拟器时编译一个或多个源文件,而当目标是 iOS 设备时编译一组不同的源文件。

我想我需要告诉 xcode 每个目标的文件列表。那么,如何使用此设置来实现呢?它在 XCode 中的哪个位置?是否有任何文档说明如何执行此操作?

我还需要对静态库做同样的事情。具体来说 - 我有一个我想在我的项目中包含的静态库,但该库只支持 arm 不支持 i386,因此,在为模拟器构建时,我需要从链接中排除这个文件!

这个可以吗?

【问题讨论】:

    标签: ios simulator


    【解决方案1】:

    基本上 EXCLUDED_SOURCE_FILE_NAMES 只会从构建配置中删除这些文件

    如果您想从构建配置中删除静态库,那么这就是要走的路。

    要实现这一点,只需转到目标的“构建设置”,然后单击“添加构建设置”按钮并为您的目标添加 EXCLUDED_SOURCE_FILE_NAMES 配置。

    然后您可以指定要为每个构建配置排除哪些文件名...

    在您的情况下,由于您提到了不同文件的列表,那么您可能应该创建 2 组应用程序包,然后排除 EXCLUDED_SOURCE_FILE_NAMES 中的包

    因此,如果您创建一个名为simulator.bundle 的包和一个名为release.bundle 的包,您将在发布配置中排除simulator.bundle 文件,在模拟器配置中排除release.bundle...

    【讨论】:

    • 我还要补充一点,EXCLUDED_SOURCE_FILE_NAMES 期望几个项目用空格而不是逗号分隔。即 "pattern1* pattern2" 是正确的,而 "pattern1*, pattern2*" 将不起作用。
    • 是否也可以排除子文件夹文件?如果我想排除文件夹中的所有文件,我可以像这样给出 ../foldername/* 吗?文件夹与我的项目处于同一级别。
    • 要排除文件夹中的所有文件,您只需指定文件夹路径不带尾随斜杠或*。例如,要在目录的根级别排除一个名为“Example”的整个文件夹,我只需键入Example
    猜你喜欢
    • 2018-08-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-17
    • 2011-09-06
    • 1970-01-01
    • 2016-01-26
    相关资源
    最近更新 更多