我得到一个这样的错误:

[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中文件是分组的,当项目编译时,所有文件最终都在同一个目录中。换句话说,如果您有/group1/image.jpg和/group2/image.jpg,编译后的项目将只有两个image.jpg文件中的一个。

其他回答

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

这种情况的另一种版本可能发生在头文件构建阶段中有副本。

要解决这个问题…

转到您的项目目标 选择构建阶段 选择头文件构建阶段 输入警告中显示的名称 注意这两个(或更多)项目 找到左下角的+|-方框 选择其中一个项目,然后单击-按钮

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

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

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

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

Xcode 4让我非常失望。

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

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

这也可能发生在你有多个xcode项目在你的工作空间中引用同一个库的情况下,即使你构建了一个依赖于单个框架的目标,工作空间也会尝试将相同的库复制到BUILD目录。

为了解决这个问题,我使用了: 选择目标,单击: ->编辑遮光 -> Under build - UNCHECK查找隐式依赖项 在某些情况下,我还必须取消选择并行化构建