Xcode-自动将文件夹中的所有文件添加到目标

Xcode-自动将文件夹中的所有文件添加到目标,xcode,build,build-process,build-automation,Xcode,Build,Build Process,Build Automation,在Xcode中,是否有一种方法可以指定文件夹中的所有文件都由目标编译。例如,“测试”目标自动编译“测试”文件夹中的所有文件,而“应用”目标编译“源”文件夹中的所有文件 今天,我的做法是,每次创建一个文件时,都向目标添加一个文件。由于文件已经组织在正确的文件夹中,因此这感觉有点容易出错和冗余 谢谢。是-只需选择文件夹中的所有文件并使用inspector窗口(目标选项卡)。Xcode可以使用shell脚本进行扩展。您可以将shell脚本设置为在构建时运行,这样基本上就可以让xcode做任何您想做的事

在Xcode中,是否有一种方法可以指定文件夹中的所有文件都由目标编译。例如,“测试”目标自动编译“测试”文件夹中的所有文件,而“应用”目标编译“源”文件夹中的所有文件

今天,我的做法是,每次创建一个文件时,都向目标添加一个文件。由于文件已经组织在正确的文件夹中,因此这感觉有点容易出错和冗余


谢谢。

是-只需选择文件夹中的所有文件并使用inspector窗口(目标选项卡)。

Xcode可以使用shell脚本进行扩展。您可以将shell脚本设置为在构建时运行,这样基本上就可以让xcode做任何您想做的事情。您只受shell脚本能力的限制,我相信您也可以找到相关帮助。

以下是有关stackoverflow试图解决此问题的一些其他问题:


您可以使用此选项向目标添加多个文件。但是它需要一些工作来过滤你想要的文件

项目>目标>编译源代码>cmd+A选择所有文件>筛选.m文件>单击“添加”

与其他资源类似


Project>Target>Copy Bundle Resources>filter for.png.wav.strings.xib.storyboard等>单击“添加”

可以采取的一种方法是使用CMake为您生成Xcode目标

详情:


另一种可能的方法是配置自定义构建阶段。

当您向Xcode项目添加文件时,您将在“文件选择”对话框中有两个选项可供选择:

  • 为任何添加的文件夹创建组
  • 为任何添加的文件夹创建文件夹引用
  • 您需要选择第二个选项。在这种情况下,Xcode将始终反映对选定文件夹的文件和子文件夹所做的更改


    这个问题似乎很久以前就被问过了,但它仍然是谷歌搜索的第一名,所以希望它能对某些人有所帮助。

    这在Xcode中完全被打破了。按文件夹引用添加文件夹(@Pavel的答案)应该是正确的-但它就是不起作用。另见。我使用的是Xcode 8.3(更新:仍然在Xcode 11中被破坏),但它也已经被破坏了很多代

    没有一个完美的解决办法,但我就是这么做的:

  • 将目录拖到项目中
  • 当被询问时,按如下方式设置选项:
    • 选择“为任何添加的文件夹创建组”(即,与您认为正确的相反)
    • 如果需要,取消选择“复制文件”(因为您需要的是链接,而不是副本)
  • 现在,对共享目录中文件的任何更改都将反映在Xcode中,这很好

    但是,没有办法让团队焕然一新。(有人请告诉我这里是否缺少一些明显的内容。)因此,如果您已将新文件添加到目录中,则必须在Xcode中删除该组并在这些文件显示之前重新添加。这显然不方便,但至少不会太容易出现用户错误,而且比逐个手动添加文件要好


    不得不说,我觉得开发环境中如此简单和必要的功能在这里被破坏是非常令人难以置信的。

    我只是按类型排序,所以我所有的源文件都是连续列出的

    然后我按住Shift+Cmd键,按下向下箭头键选择所有需要的文件


    一旦选中,我就可以选中所有添加到特定目标:)

    据我所知,Xcode中没有与此相关的bug,而且Xcode从不支持此类机制(根据文件系统中的可用性自动从目标添加/删除源)

    组变体(表示文件夹的组与“常规”组)只允许您灵活地查看项目树的视觉效果,无论源代码在存储库中的位置如何,它应该紧跟磁盘上的存储库,还是更具“人类可读性”和描述性

    我指的是我使用过的所有Xcode版本,即v1.0b2到v11.3

    无论如何,我承认拥有这样一种新功能的机制会很好(我们可以向苹果保证这一点)

    现在,一种方法是构建一个新的“编译器”,其输入是文件夹路径,其“生成的代码”是该文件夹中的源文件集。如果我们将这样一个“编译器”作为构建规则添加到目标中,我们可能会达到预期的效果


    如果您想深入了解这一点,请遵循Protobuf可以添加到Xcode项目中的方式,以及在Xcode目标中如何处理CoreML模型。

    但是,每次创建新文件时,都需要指定目标。如果有一种方法可以根据文件所在的文件夹自动设置此目标,那就更好了。这样,就不需要每次都将目标分配给文件,因为它们将位于正确的文件夹中。例如,测试,上面的应用程序示例。@Akshay:我明白你的意思-是的,这可能会节省一点时间。你可以使用Apple Bug Reporter来提出这样的功能请求。我敢打赌,这是从谷歌上找到的——一定有办法做到这一点。你可以试着在苹果的Xcode邮件列表上问:“Xcode用户”这到底是什么样子?当然,它不应该一直重新编译所有文件,等等。这些都与这里无关。第一个是关于资源文件,Akshay询问了源文件。第二个也不相关,项目的链接已经失效,并且它不能很好地进行依赖项跟踪;在构建启动后修改Xcode项目就像在编译源文件时修补二进制编译器一样。它可能会起作用,尽管我一秒钟也不会依赖它。@Mecki minit项目被删除了,但该项目已经存在。修改Xcode项目更像是修改fyi