我得到一个这样的错误:

[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,我没有看到任何这样的文件的副本。正如苹果邮件列表中的这篇文章所说,没有副本。


当前回答

实际上,这个问题的答案很简单。

在你的Xcode项目中搜索引发警告的文件,并删除其中一个。

Xcode只会在搜索结果中显示该文件的一个引用,但不要止步于此,直接删除它。(最好在删除之前备份项目文件)

现在再次构建项目。警告现在应该消失了。 (这个答案是以前版本的xcode)

其他回答

我找到了一个非常简单的解决方法:

从项目导航器中选择导致问题的文件 从文件检查器中取消选中目标成员 构建项目 再次检查文件的目标成员

警告不见了!检查此图像作为参考。

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

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

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

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

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

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


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

在我的案例中,生成设置中的“产品名称”为空。因此输出变成了.app,名称为空,引导多个产品。设置一个产品名称就可以了。

关键是做豆荚分解和rm *。工作区文件!真是浪费时间!