Xcode警告:“输出文件的多个构build命令”

我得到这样的错误:

[警告]警告:输出文件/Developer/B/Be/build/Release-iphonesimulator/BB.app/no.png的多个构build命令

[警告]警告:输出文件/Developer/B/Be/build/Release-iphonesimulator/BB.app/d.png的多个构build命令

[警告]警告:输出文件/Developer/B/Be/build/Release-iphonesimulator/BB.app/n.png的多个构build命令

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

在Project Navigator中,select你的Xcode项目文件。 这将显示项目设置以及项目中的目标。 查看“复制包资源”构build阶段。 您应该在该列表中find两次有问题的文件。 删除重复的参考。

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

当你添加基于git的子项目时,很容易造成这种情况。 Xcode是不够聪明的忽略.git子文件夹,即使你不能从发现者看到它,所以会有很多名为“主”或“排除”,(标准的git回购文件)的文件会很困惑。 使用Xcode4,转到项目(左树的根目录),然后单击您的应用程序目标并展开“复制软件包资源”,然后删除所有对.git的引用,无论如何您都不需要将它们烘焙到您的应用程序中。

其实这个答案很简单。

在你的xcode中search引发警告的文件,并删除它。

Xcode将在search结果中只显示该文件的一个引用,但不要停在那里,继续删除它。 (在删除操作之前,最好备份到您的项目文件)

现在做一个构build,你会看到删除的警告。 (这个答案是针对以前版本的xcode)

这不是一个Xcode错误,虽然警告消息不足以描述真正的原因。

当您的项目中有多个文件具有相同的名称时,会出现此错误信息。 你只需删除或重命名重名的文件,问题就解决了。

如果在项目中有两个同名的文件,就会发生这种情况。 即使在编译项目时XCode中的文件是分组的,所有的文件最终都在同一个目录中。 换句话说,如果你有/group1/image.jpg和/group2/image.jpg编译的项目将只有两个image.jpg文件中的一个。

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

组参考

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

删除违规文件并select“删除引用”(所以我们不要完全删除它们):

删除组引用

通过将它们拖回到项目导航器中,将它们重新添加到项目中。 在出现的对话框中,select“为所有添加的文件夹创build文件夹引用”:

添加为文件夹引用

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

文件夹引用


如果您现在查看目标构build阶段的“复制包资源”部分,则会注意到整个文件夹中只有一个条目,而不是目录中包含的每个项目的条目。 编译器不会抱怨这些文件的多个构build命令。

这不是一个错误。 Xcode的帮助可以帮助你。 select项目导航器左侧的目标。 点击设置底部的“validation设置”。 Xcode将检查设置并删除重复如果可能的话。

在“ 标题”构build阶段中存在重复的情况下,可能会出现这种情况的另一个版本。

解决这个问题

  1. 去你的项目目标
  2. selectBuild Phases
  3. selectHeaders构build阶段
  4. input警告中显示的名称
  5. 注意两个(或更多)项目
  6. find左下angular的+|-
  7. select其中一个项目,然后单击-button

在我的情况下,这个问题是由组内的目标和文件夹的相同名称引起的。

只需重命名冲突的文件或文件夹即可解决问题。

我敢肯定,这可能是由于一个XCode 4错误,至less在我遇到过的情况下。

如果您同时向项目中添加多个语言相关文件,则会发生这种情况。 通过查看git差异,我发现了这一点。 我没有做任何提交,但添加了一些新的本地化的笔尖文件。 但回过头来看project.pbxproj文件的差异,它显示了一些新的重复引用添加到项目中已经在项目之前。 它做的这些文件对我来说似乎是随机的。

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

从项目中删除这些文件不能解决问题,因为它只会删除原始引用并保留重复项。 解决这个问题的唯一方法是返回一个提交并重新开始,或者手工编辑项目文件,这是一个非常好的方法来解决这个问题,因为很难判断哪个重复项被移除,你必须这样做在很多不同的地方。

Xcode 4对我来说只是一个巨大的失望。

我发现了一个非常简单的解决scheme:

  1. 从项目导航器中select导致问题的文件
  2. 从文件检查器中取消选中目标成员资格
  3. build立这个项目
  4. 再次检查文件的目标成员资格

警告消失了! 检查这个图像作为参考。

在这里输入图像说明

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

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

在这个问题上的又一个变化。 我有同样的信息出现以前没有build议的解决scheme解决了这个问题(我绝对只有一个副本的有问题的文件例如)。

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

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

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

我几分钟前也有同样的问题。 我提到改变“部署目标”解决了我的问题。

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

Swift 3 :(但也是旧版本)它发生在我拥有重复资产时。 只需重命名这个问题的文件,一切顺利。

它也可能发生,当你已经做了一个Assets.xcassets ,你已经用新名称重命名重复,所以时间之后,你忘了它,并删除它添加文件夹引用,但这一个返回到重复文件的问题..