Xcode警告:"输出文件的多个构建命令"

Fut*_*tur 492 xcode warnings build

我收到这样的错误:

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

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

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

但我检查过Xcode,我根本没有看到任何重复的文件.正如Apple Mailing Lists中的这篇文章所说,没有重复.

Mar*_*man 804

在Project Navigator中,选择您的Xcode Project文件.这将显示项目设置以及项目中的目标.查看"复制捆绑资源"构建阶段.您应该在该列表中找到两次违规文件.删除重复的引用.

Xcode抱怨你试图将同一个文件与你的应用程序捆绑两次.

  • 值得注意的是,如果您在Copy Bundle Resources阶段有大量重复文件,您可以点击本页底部的"验证设置",XCode会提示您有关重复项的信息,如果您点击',则会删除所有重复文件执行更改'.地狱比单独寻找他们快得多. (10认同)

slf*_*slf 126

添加基于git的子项目时很容易引起这种情况.即使你无法从finder中看到它,Xcode也不够智能忽略.git子文件夹,因此会有很多混淆,即有多个文件名为"master"或"exclude",(标准的git repo文件).使用Xcode4,转到项目(左侧树的根),然后单击您的应用程序目标并展开"复制包资源",然后删除对.git的所有引用,无论如何您都不应该将它们添加到您的应用程序中.

  • 我摸索了一秒钟,所以这可能有助于某人:应用目标 - >构建阶段 - >复制捆绑资源 (43认同)
  • 我的Xcode项目中有多个具有相同名称(但在不同目录中)的文件.很遗憾,我的一个人在Copy Bundle Resources步骤中同时拥有它们,这将导致其中一个被覆盖在生成的应用程序包中.只需删除其中一个. (2认同)

Fut*_*tur 107

实际上答案很简单.

在你的xcode中搜索引发警告的文件,然后删除它.

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

现在进行构建,您将看到警告被删除.(这个答案适用于以前版本的xcode)


小智 52

这不是Xcode错误,但警告消息对于描述真正原因没有帮助.

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


res*_*ode 26

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


Stu*_*art 17

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

小组参考

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

删除有问题的文件并选择"删除引用"(因此我们不会完全删除它们):

删除组引用


将它们拖回到项目导航器中,将它们重新添加到项目中.在出现的对话框中,选择"为任何添加的文件夹创建文件夹引用":

添加为文件夹引用


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

文件夹引用


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


小智 15

这不是一个错误.Xcode助手可以帮助您.在项目导航器中选择左侧的目标.单击设置底部的"验证设置".如果可能,Xcode将检查设置并删除重复项.


joh*_*doe 14

Headers构建阶段中存在重复时,可能会出现此情况的另一个版本.

解决这个问题......

  1. 转到您的项目目标
  2. 选择 Build Phases
  3. 选择Headers构建阶段
  4. 输入警告中显示的名称
  5. 注意两个(或更多)项目
  6. 找到+|-左下角的方框
  7. 选择其中一个项目,然后单击-按钮


Dmi*_*try 7

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

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


Mah*_*yez 6

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

  1. 从项目导航器中选择导致问题的文件
  2. 从文件检查器中取消选中目标成员资格
  3. 建立项目
  4. 再次重新检查文件的目标成员资格

警告消失了!查看此图片以供参考.

在此输入图像描述


Ste*_*eve 5

我很确定这可能是由XCode 4错误造成的,至少在我遇到它的情况下.

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

我多次重现了这个相同的行为.

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

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