我得到一个这样的错误:

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


当前回答

这是因为你的“no.png”、“d.png”和“n.png”在资源中重复了。只需查找删除重复文件和删除。

其他回答

我很确定这可能是由XCode 4的错误引起的,至少在我遇到的情况下是这样。

如果您同时向项目添加多个依赖于语言的文件,就会发生这种情况。我通过查看git差异发现了这一点。我在提交中什么也没做,只是添加了一些新的本地化的nib文件。但是回顾这个项目的不同之处。在Pbxproj文件中,它显示了一堆新的重复引用,为之前已经在项目中的文件添加。在我看来,它这样做的文件也是随机的。

我重复了很多次同样的行为。

从项目中删除这些文件并不能解决问题,因为它只删除原始引用并留下重复的引用。修复它的唯一方法是返回提交并重新开始,或者手工编辑项目文件,这是一种非常好的方法,因为很难判断要删除哪些重复的文件,而且你必须在大量不同的地方进行修改。

Xcode 4让我非常失望。

对我来说,目标>构建设置>包装>产品名称被设置为与我的应用程序自定义的.plist文件中引用的另一个值相同的东西。最终,由于我们的构建过程,这创建了重复的文件。

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

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

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

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

这不是一个bug。Xcode辅助可以帮助你。在项目Navigator的左侧选择目标。点击设置底部的“验证设置”。Xcode会检查设置并删除重复项。

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