Xcode可以使用代码的"文件夹引用"吗?

Dan*_*ark 33 xcode xcode4

像许多人一样,我希望让Xcode使用一个文件夹结构来镜像磁盘上的文件夹结构.但是,我无法将"文件夹引用"(青色文件夹)中的代码显示在"编译源"下的项目目标中.有没有办法做到这一点?

我甚至设法将"青色"文件夹添加到"编译源"构建阶段,但这不会导致添加该文件夹的内容.

如何使用文件夹引用代码?

Wil*_*iuk 14

简单(非常不幸)的答案是Xcode下的文件夹引用仍然存在缺陷和错误,它们无法正常工作.在Xcode 8.2.1中于2017年3月4日进行了测试

下面是一个示例探索,因此您不必浪费时间来复制Xcode故障.

(顺便提一下,在我制作这个例子时,Xcode崩溃了两次)

根据这个问题,整体需要在Xcode中使用文件夹引用,以便Xcode获取文件夹中的所有文件并将它们包含在项目中,并且代理将根据文件夹的任何Finder或Xcode更改自动更新.通过这种方式,当这些文件夹发生变化时,不必单独更新所有利用相同的公共源代码文件集的50个项目.下面将探讨如何在Xcode中解决这个问题(在8.2.1中测试)

示例:ViewController.m包含NSError+Core.h所以我们希望将文件夹"NSError + Core"中的所有内容添加到项目中.

在此输入图像描述

NSError+Core.h 位于这个位于中心的开发文件夹中

在此输入图像描述

将源文件夹从Finder拖到"支持"组下的项目中(没有任何东西,简单拖动)

在此输入图像描述

Xcode尽职尽责地将拖动添加到目标,请注意选择"创建文件夹引用",而不是"创建组引用".另请注意,很明显Xcode正在提供并被告知将此文件夹和文件添加到目标.

在此输入图像描述

虽然一切看起来都应该有效,但编译器不会获取头文件,重新编译会产生相同的结果......找不到头文件.抛弃DerivedData也无济于事.

在此输入图像描述

所以做一个双重检查,我们检查项目下的"编译源",果然,源文件也不存在.请记住,Xcode'将'添加'到目标...

在此输入图像描述

那么如果我们将它从文件夹拖到"支持"组中呢...

在此输入图像描述

它提供了再次将它们添加到项目中?!请注意,由于父文件夹拖动而不是文件,这些设置与第一次进入药物时的设置相同...

在此输入图像描述

现在的源文件中的"编译来源"列表中显示.请注意项目中文件的奇怪双重列表.

(抢购此屏幕截图后Xcode很快崩溃)

在此输入图像描述

当然,编译器现在可以找到头文件,并且导入时会清除错误,因为它应该是我们第一次将其用于...

在此输入图像描述

它只是需要一些帮助来"找到"文件吗?如果是这样,"创建文件夹引用"究竟做了什么?

因此,我们尝试整理并将文件从父"支持文件"组拖回到其正确的文件夹中.没有任何确认,指示,通知,文件只是从组中消失,NSError + Core文件夹中没有任何反应.

在此输入图像描述

哦顺便说一下,它确实从项目中删除了它们......编译源不再具有NSError + Core.m参考.

在此输入图像描述

总而言之,到目前为止实施的"文件夹参考"似乎没有任何有用的目的......它似乎是USS Xcode上6岁以上的dunsel.

  • 很好的答案.我一直对Xcode中存在多少这样的问题感到惊讶 - 它也一直在为我崩溃.对于"黄金时段"来说还不够好. (2认同)