在Xcode中创建组vs创建文件夹参考

usi*_*rse 6 xcode

我在使用Xcode时很好奇。

复制项目所需的开源类文件时,我总是需要选择一个选项。

选项为“创建组”和“创建文件夹引用”。

我已经阅读了两者之间的区别。

但这是完全不了解的。

当我选择两个选项之一时,我从项目中删除了该文件,并同时删除了开源类文件。

我不想要这个。

我希望始终作为独立文件存在。我应该选择什么?

Yev*_*nin 11

任何 Xcode 项目结构组织都有两种类型:

  • 文件系统项目结构(使用Finder.app检查)
  • IDE项目结构(可使用Xcode 导航区中的Project Navigator检查。)

Xcode 通过保留对“物理”文件或文件夹的引用来依赖文件系统组织。这就是为什么您可能将项目的所有类、图像、plist 和其他部分存储在同一文件夹中,而对这些部分的引用在 Xcode 项目中被组织到相应的中。

创建组时,它会影响 Xcode 中项目的组织。当您使用引用文件夹创建组时,它会同时创建 Xcode 项目中的组和文件系统中的文件夹。

但是,从 Xcode 9开始,Apple 强制执行文件系统项目结构以对应于 Xcode 项目结构。这意味着,您必须明确选择“没有文件夹的新组”

  • 我还是不明白。换句话说,在将文件夹拖放到项目中时,您需要有哪些选项才能使原件和副本分开存在? (3认同)

sca*_*aly 9

创建文件夹引用:

  • 无用,因为即使您列出要包含在目标中的文件夹,Xcode 也不会在该目标中包含其任何内容,并且无法单击文件夹中的某些内容并查看它包含在哪些目标中。

创建群组:

  • 如果您想将任何文件夹的内容包含在构建目标中,这是唯一的方法。


yoA*_*ex5 7

将文件和文件夹添加FinderXcode组中。Xcode 10.2.1。看看例子,没有Copy items if needed

文件

为共同的行为create groupscreate folder references

  1. 重命名文件 fromFinder不会重命名 中的文件Xcode,因此 Xcode 不处理它,它将用红色标记它们。
  2. 重命名文件Xcode从重命名文件Finder
  3. Finder更改文件更改文件,Xcode反之亦然
  4. Xcode更改文件中删除以删除文件,Finder反之亦然
  5. 文件夹Finder添加文件不会将文件添加到Xcode

文件夹

为共同的行为create groupscreate folder references

  1. 重命名文件夹/组Xcode从重命名文件夹Finder

create groups

如果选择create groups,则相应文件夹将在项目导航器中显示为黄色图标。

它只是一个虚拟文件夹。当您复制文件但未编译并且您没有时间对其进行更改而只想检查项目是否有效时,它在开发过程中很有用。所以你可以从文件中删除一个引用。它不会从文件夹中删除,因此您将能够再次添加此文件。

  1. 重命名文件夹Finder不重命名的名称Xcode。您窃取可以与组一起使用但以前的内容虽然可见但不可用
  2. 将文件添加到文件Finder不会将文件添加到分组Xcode
  3. 将文件添加到Xcode不会将文件添加到文件Finder
  4. 删除文件夹Finder不会删除该Xcode。您窃取可以与组一起使用但以前的内容虽然可见但不可用

create folder references

如果您选择create folder references,则文件夹在项目导航器中显示为蓝色图标。

这是一个真实的文件夹,任何更改都会反映出来

  1. 重命名文件夹Finder不重命名的名称的文件夹在Xcode。以前的内容消失了,您无法使用此文件夹
  2. 将文件添加到文件Finder将文件添加到文件Xcode
  3. 将文件添加到文件Xcode将文件添加到文件Finder
  4. 删除文件夹Finder删除的文件夹Xcode

[如果需要,复制项目]


Bar*_*nat 6

我花了一段时间才了解这两种选择之间的区别,所以我想分享一下:

当Xcode 10是当前版本时,我正在写这篇文章

最大的不同是如何从查找器访问导入的文件夹/文件。假设您想将新文件夹导入Xcode项目。选择Create groupsXcode时,将导入新文件夹并创建一个组(黄色图标)。当您转到项目的目录(使用Finder)时,应该会看到一个名为您刚导入的文件夹的文件夹,但是通过Finder放入此文件夹的任何其他文件在您的Xcode项目中都不可见。

选择Create folder references导入的文件夹时,将带有经典的蓝色文件夹图标。当您转到项目目录时,该新文件夹也将可见,但是现在放置在其中的每个新文件也将出现在Xcode项目中。

如果您想了解更多信息,请阅读以下说明http://www.thomashanning.com/xcode-groups-folder-references/

这非常简单易懂。

  • 还值得注意的是向项目添加资源时的不同行为。如果您将资源放在一个组中,则该组中的每个项目都会复制到构建中的捆绑包的根目录。如果您创建文件夹引用,则将在您的捆绑包中创建包含资源的同名文件夹 - 文件夹结构在捆绑包中维护。 (5认同)