我得到一个这样的错误:

[WARN]警告:输出文件/Developer/B/Be/build/ release - iphoneonessimulator /BB.app/no.png有多个构建命令 [WARN]警告:输出文件/Developer/B/Be/build/ release - iphoneonesemulator /BB.app/d.png有多个构建命令 [WARN]警告:输出文件/Developer/B/Be/build/ release - iphoneonesemulator /BB.app/n.png有多个构建命令

但是我检查了Xcode,我没有看到任何这样的文件的副本。正如苹果邮件列表中的这篇文章所说,没有副本。


当前回答

Swift 3:(旧版本也是如此)当我拥有带有副本的资产时就会发生这种情况。只要用这个问题重命名文件,一切都会顺利进行。

当你创造了资产时也会发生这种情况。Xcassets和你已经重命名了副本的新名称,所以在时间之后,你忘记了它,并删除它以添加文件夹引用,但这一个返回到重复文件的问题。

其他回答

如前所述,如果在项目导航器中有多个具有相同名称的文件,但位于不同的组(黄色文件夹),则可以看到此问题。在我的例子中,这是故意的,因为我有多个子目录,每个都有一个“preview.jpg”,我想复制到应用程序包:

在这种情况下,你需要确保Xcode识别目录引用(蓝色文件夹图标),而不仅仅是组。

删除违规文件并选择“删除引用”(这样我们就不会完全删除它们):

通过将它们拖回项目导航器,将它们重新添加到项目中。在弹出的对话框中,选择“为任何已添加的文件夹创建文件夹引用”:

注意,这些文件现在在项目导航器中有一个蓝色的文件夹图标:


如果您现在查看目标构建阶段的“Copy Bundle Resources”部分,您将注意到整个文件夹只有一个条目,而不是目录中包含的每个项目都有条目。编译器不会因为这些文件有多个构建命令而报错。

当你对同一个文件有多个引用时,错误似乎就会出现。 我有两个相同名称的文件,并得到这个错误。当我删除其中一个错误消失。

打开项目中的框架文件夹,确保里面只有框架。我错误地添加了整个开发者文件夹!

这很容易在添加基于git的子项目时引起。Xcode还没有聪明到忽略。git子文件夹,即使你在finder中看不到它,所以它会非常困惑,因为有多个名为“master”或“exclude”的文件(标准的git回购文件)。使用Xcode4,转到项目(左侧树的根),然后单击应用目标并展开“复制Bundle Resources”,然后删除所有对.git的引用,无论如何你都不应该将它们添加到应用中。

在项目导航器中,选择Xcode项目文件。这将显示项目设置以及项目中的目标。查看“Copy Bundle Resources”构建阶段。您应该在该列表中找到两次违规文件。删除重复的引用。

Xcode抱怨你试图将同一个文件与你的应用程序捆绑两次。