我得到一个这样的错误:

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


当前回答

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

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

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

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

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


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

其他回答

这是这个问题的另一种变体。我得到了同样的消息,之前建议的解决方案都没有解决这个问题(例如,我肯定只有一个违规文件的副本)。

我的解决方案是编辑项目。在文本编辑器中删除pbxproj文件(当然是在退出XCode并备份文件之后),并删除所有对违规文件的引用。然后,再次启动XCode后,我手动将文件添加回项目中,一切正常。

(我怀疑这个问题发生在我身上是因为一个手册,即:非xcode,合并项目文件。)

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

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

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

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

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

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

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

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

Xcode 4让我非常失望。

虽然我确信有更好的方法,但核弹只花了我不到60秒的时间,而且是我能找到的唯一有效的方法。

将repo拖到垃圾桶。 重新克隆你的回购。 设置你的回购与正确的远程跟踪。Git远程添加<url。Git >或Git remote set-url <url.git>

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