877

错误:多个命令产生'/Users/uesr/Library/Developer/Xcode/DerivedData/OptimalLive-fxatvygbofczeyhjsawtebkimvwx/Build/Products/Debug-iphoneos/OptimalLive.app/Info.plist':1)目标'OptimalLive'有复制命令'/Users/uesr/Desktop/workSpace/SEALIVE/SeaLive1.1/OptimalLive/Info.plist' 到 '/Users/uesr/Library/Developer/Xcode/DerivedData/OptimalLive-fxatvygbofczeyhjsawtebkimvwx/Build/Products/Debug-iphoneos/OptimalLive .app/Info.plist' 2) 目标 'OptimalLive' 具有从 '/Users/uesr/Desktop/workSpace/SEALIVE/SeaLive1.1/OptimalLive/Server/Masonry/Info.plist' 到 '/Users/uesr/ 的复制命令库/开发人员/Xcode/DerivedData/OptimalLive-fxatvygbofczeyhjsawtebkimvwx/Build/Products/Debug-iphoneos/OptimalLive.app/Info.plist' 3) 目标'OptimalLive'具有输入“/Users/uesr/Desktop/workSpace/SEALIVE/SeaLive1.1/OptimalLive/Info.plist”的流程命令

在 Xcode9 中运行代码可以,但是在 Xcode10 中出现错误。

4

85 回答 85

1720

该问题可能是由于 App 中的多个 Plist 或其他文件而发生的-

解决方案->打开目标->构建阶段>复制捆绑资源info.plist从那里删除。

在此处输入图像描述

注意:如果您也开发了手表应用程序,那么您也必须从手表和手表扩展中删除 plist。

于 2018-06-06T11:32:11.030 回答
606

此答案已弃用 - Xcode 12 已弃用Legacy Build System,它将在后续版本中删除

我找到了此构建错误的解决方案,对于其他与 Xcode 10 构建系统有相同问题的人,请按照以下步骤进行修复:

  1. 在 Xcode 中,转到 File->Project/Workspace 设置。
  2. 将构建系统更改为 Legacy Build 系统。

在此处输入图像描述 它将解决新 Xcode 10 的构建问题。

如果您想使用新的构建系统,那么您可以从这个苹果 Xcode 帮助页面找到故障排除帮助。

于 2018-06-28T18:29:02.637 回答
171

转到 Xcode -> 文件 -> 工作区设置。 你会发现一个像这样的弹出窗口。

在此处输入图像描述

从 Build System 标签中选择“ Legacy Build System ”。按“完成

注意:-确保使用“ cmd+shift+alt+k ”和“ Derived Data ”清除您的项目

构建您的项目,它将发挥魅力:)

于 2018-09-20T05:17:48.683 回答
144

我正在尝试使用 Core Data。我为一个简单的清单程序构建了一个数据模型并生成了 NSManagedObjects。当我编译项目时,出现以下错误:

error: Multiple commands produce '/Users/myUSerName/Library/Developer/Xcode/DerivedData/myCoreDateExperiment-gzbslaqdwglkzxemijpdqmizgyzc/Build/Intermediates.noindex/ myCoreDateExperiment /Debug-iphonesimulator/ myCoreDateExperiment.build/Objects-normal/x86_64/CheckListItem+CoreDataProperties.o':
1) Target ' myCoreDateExperiment ' (project ' myCoreDateExperiment ') has compile command for Swift source files
2) Target ' myCoreDateExperiment ' (project ' myCoreDateExperiment ') has compile command for Swift source files

问题是数据模型(在我的例子中是 CheckList.xcdatamodeld)在“编译源”列表中。当我从列表中删除该项目时,该项目编译得很干净。

  1. 打开项目导航器并选择项目(顶部的第一个条目)
  2. 在“项目和目标”窗格中的“目标”下选择您的构建目标
  3. 选择顶部附近的构建阶段选项
  4. 展开“编译源”条目并查找您的数据模型名称。如果找不到“xcdatamodeld”,请搜索它。
  5. 从编译列表中删除模型
  6. 确保数据模型包含在“复制捆绑资源”列表中。如果缺少,请添加它。

编辑

作为@WilliamT。在注释中解释说,您需要编译列表中的 xcdatamodeld。相反,请转到 xcdatamodeld 文件中的实体。选择出错的模型,展开左侧面板,将“Codegen”字段更改为“Manual/None”。

于 2018-12-03T15:42:23.723 回答
112

此答案已弃用 - XCode 12 已弃用Legacy Build System,它将在后续版本中删除

试试这个。Xcode->文件->项目设置->构建系统->旧版构建系统。

于 2018-06-06T13:30:54.223 回答
80

Ditto如果您从创建多个同名实例(不是)的命令中获取此信息,则'copy files' build phase可能需要更改Product Module Name.

  1. 单击 Xcode 抱怨的目标
  2. 点击Build Settings
  3. 搜索Product Module Name
  4. 将名称更改为独特的名称

我们的应用程序中有一个监视目标和一些通知目标,所以我只是Extension在模块名称的末尾添加了类似的内容。

我最初在这里找到了这个解决方案:https ://forums.developer.apple.com/thread/103913

于 2018-09-06T13:41:07.827 回答
48

如果您使用 CocoaPods,您可能需要尝试解构 pod 并重新安装。这个对我有用。

pod deintegrate

pod install

于 2018-09-23T04:17:14.587 回答
47

在检查构建日志时,我注意到一个警告:

note: Using new build system
note: Planning build
note: Constructing build description
Build system information
warning: The Copy Bundle Resources build phase contains this target's Info.plist file '/Users/<redacted>/Repositories/Whitesmith/optimize-ios/Carthage/Checkouts/WSStatusBarNotification/Miscellaneous/Info.plist'. (in target 'JDStatusBarNotification')

所以,如果这是你的情况,那么就去你的目标:

  1. 构建阶段
  2. 复制捆绑资源
  3. 删除info.plist.
于 2018-06-06T11:00:34.360 回答
39

如果错误消息引用核心数据文件,请阅读此答案

概要:您可能同时拥有自动生成和手动生成的 Core Data 托管对象类文件。

如果错误的第一行涉及Foo+CoreDataProperties.oFoo+CoreDataClass.o文件,则此答案适用。例子:

error: Multiple commands produce '/Users/me/Library/Developer/Xcode/DerivedData/MyApp-uebslaqdwgldkjemijpdqmizgyzc/Build/Intermediates.noindex/ MyApp /Debug-iphonesimulator/ MyApp.build/Objects-normal/x86_64/Foo+CoreDataProperties.o':

1) Target ' MyApp ' (project ' MyApp ') has compile command for Swift source files

2) Target ' MyApp ' (project ' MyApp ') has compile command for Swift source files

可以通过展开 Build Transcript 的Compile Swift Source Files部分来查看根本原因。例如:

<unknown>:0: error: filename "Address+CoreDataClass.swift" used twice: '/Users/myUserName/Projects/Jnky/Foo+CoreDataProperties' and '/Users/jk/myUserName/Developer/Xcode/DerivedData/MyApp-uebslaqdwgldkjemijpdqmizgyzc/Build/Intermediates.noindex/MyApp.build/Debug/MyApp.build/DerivedSources/CoreDataGenerated/Jnky/Foo+CoreDataProperties.swift'

提到的第一个文件在您的项目目录中有一个源文件,有人通过在 Project Navigator 中选择您的数据模型并单击菜单Editor > Create Managed Object Subclass来生成该文件。这个特性是在 Xcode 7 左右添加的。

第二个文件是一个同名文件,但它隐藏在 Xcode 的DerivedData. 如果数据模型 ( ) 文件包含在目标的编译源构建阶段,则 Xcode 在每次构建期间自动生成此文件。这个特性是在 Xcode 9 左右添加的。根据Codegen弹出窗口的设置,为每个实体/类生成零个、一个或两个文件。当您在编辑数据模型时选择实体时, 该弹出窗口位于数据模型检查器中……</p>.xcdatamodeld

数据模型检查器的屏幕截图

设置如下:

  • 手动/无不生成文件
  • 类别/扩展生成一个文件Foo+CoreDataProperties.m.swift,其中包含一个 Objective-C 类别或 Swift 扩展。
  • 类定义生成相同的 Category/Extension 文件,另外生成Foo+CoreDataClass.m.swift,包含类声明和定义。

因此,当习惯于旧 Xcode 的开发人员(如我)在新 Xcode 中开始项目时,您会看到问题发生。我们认为我们需要使用Create Managed Object Subclass菜单项来创建我们可以在 Project Navigator 中看到的文件,同时没有意识到我们在Codegen弹出窗口中的设置导致 Xcode 创建重复文件,Apple “聪明”不会显示在项目导航器中,因为他们不相信开发人员会阅读和注意标题中的注释// 此文件是自动生成的,不应编辑。

解决方案 1 - 使用旧方法

您只需一项设置即可禁用数据模型的所有自动Codegen :

  • 打开问题目标的构建阶段(在Project Navigator中,选择项目,然后在出现的TARGETS列表中,选择问题目标,然后选项卡Build Phases)。
  • 展开Compile Sources条目并找到问题数据模型(.xcdatamodeld文件)。
  • 从编译列表中删除它
  • 确保数据模型包含在Copy Bundle Resources列表中。

解决方案 2 - 初学者的核心数据魔法

在这里,您将全力以赴。

  • 将您的数据模型保留在Compile Sources中。
  • 在数据模型的每个实体检查器中,将Codegen设置为Class Definition
  • 在 Project Navigator 中,删除并丢弃所有Foo+CoreDataClass文件,并将所有Foo+CoreDataProperties.m.swift文件重命名为Foo+MyProperties之类的名称。
  • 在每个Foo+MyProperties.m.swift文件中,如果有 Xcode 生成的属性,请删除这些属性,因为它们将在Codegen创建的隐藏文件中。

使用此解决方案,您的类定义会从每次构建的数据模型中自动生成。你甚至看不到他们。它是Core Data Magic,对初学者来说又好又简单。

解决方案 3 - 适用于大多数真实世界的应用程序

但是如果你真的想添加非托管属性,解决方案 2 就不好了。(Objective-C 不允许在类别中添加属性,而 Swift 不允许在扩展中添加存储的属性。)因此,在大多数实际应用程序中,您可能希望在解决方案 1 和 2 之间选择中间……</ p>

  • 将您的数据模型留在编译源列表中
  • 在数据模型的每个实体检查器中,将Codegen设置为Category/Extension
  • 在 Project Navigator 中,删除并丢弃任何Foo+CoreDataClass.m.swift文件,并且为了减少将来的混淆,将任何Foo+CoreDataProperties.m.swift文件重命名为Foo.m.swift
  • 确保每个Foo.m.swift文件都包含类定义,您可以在其中添加自己的非托管属性。

(Positron 对答案的致谢。我在这里的回答解释了为什么 Positron 的答案(我的解决方案 1)有效,并添加了解决方案 2 和解决方案 3。)

于 2019-04-02T10:18:34.243 回答
29

我有同样的问题,我在主应用程序中有一个辅助应用程序并将其复制到资源中。在我的情况下解决为: -

1)目标 - > 2)构建阶段 2)复制文件(n 项) 3)删除复制文件。

Helper 应用程序在 Xcode 10.0 中自动复制。

在此处输入图像描述

于 2018-06-12T10:46:50.000 回答
26

试试这个它的工作:

在 Xcode 中,转到 File->Project/Workspace 设置。

将构建系统更改为 Legacy Build 系统。

于 2018-09-13T06:52:22.127 回答
23

解决方案 1:
打开目标 ➼ 构建阶段 ➼ 复制捆绑资源 ➼ 从那里删除info.plist。➼ 您也必须从扩展中删除 plist(如果有)。

解决方案 2:
如果您使用 CocoaPods,您可能需要尝试解构pod 并重新安装。命令:

1) pod deintegrate
2) pod install

解决方案 3:
在 Xcode 中,转到 File ➼ Project/Workspace settings。
➼ 将构建系统更改为Legacy Build system

于 2020-10-06T05:23:33.457 回答
22

解决我的问题的一种选择是将构建系统更改为旧版构建系统。请在 Xcode 10+ 中按照以下步骤操作。

在这里,我写了一篇关于问题及其解决方案的详细文章。Xcode 错误:产生多个命令

在此处输入图像描述

在此处输入图像描述

于 2019-06-12T09:05:03.353 回答
21

这里提出的解决方案都不适合我。这尤其归功于 CocoaPods。我以前使用的是 Cocoapods 1.3.1。简单地升级到 1.5.3 并不能立即解决问题。

我遵循的步骤是:

  1. 删除 Podfile.lock
  2. 删除 Pod 目录
  3. 删除派生数据并清理
  4. 退出 Xcode
  5. 将 CocoaPods 更新到 1.5.3
  6. pod install
  7. 打开工作区并构建
于 2018-09-21T21:49:31.677 回答
19

就我而言,PDFGenerator 正在生成一个 info.plist 文件,我只是将其删除。

在此处输入图像描述

于 2018-11-13T07:32:34.083 回答
18

此答案已弃用 - Xcode 12 已弃用Legacy Build System,它将在后续版本中删除

我正在使用 Xcode 11.4 无法构建旧项目

Xcode => 文件 => 项目设置 => 构建系统 => 旧版构建系统

在此处输入图像描述

在此处输入图像描述

于 2020-05-06T01:47:27.903 回答
12

在开始之前,请注意我的项目使用 Carthage 作为依赖项管理器。

这里现有的答案都没有解决我的问题。为我解决了这个问题的是以下内容。

首先,我注意到构建错误特别指出了一个框架。接下来,我为该框架过滤了 App Target > Build Phases。我注意到该框架存在于“Link Binary With Libraries”和“Embed Frameworks”中。注意到“嵌入框架”下列出的框架都不是由迦太基管理的框架,我从“嵌入框架”中删除了有问题的框架。然后我重新构建了我的项目,一切正常,包括相关框架启用的功能。

于 2018-08-14T06:04:57.300 回答
12

在将 SDK 的 Fabric 套件的第二部分添加到应用程序后,我出现了这个问题。

实际发生的是 GoogleUtilies 框架被两次添加到 Pods 项目中

GoogleUtilities.framework 的两个条目

这在 Xcode 10 之前会很好,但是如果文件有两个针对它的操作(在这种情况下是复制操作),Xcode 10 会抱怨。

删除第二个框架是安全的。

于 2019-03-12T13:30:42.190 回答
10

当我在两个不同的目标中有一个同名的文件时,我遇到了这个问题。出于某种原因,其中一个文件我拥有两个目标的一部分。所以基本上我有两个文件。这两个文件都属于一个目标。

一个目标每个目标只能有一个文件名是有道理的,因此只需取消选中与主目标无关的文件的目标成员框即可解决问题。

于 2018-06-06T23:48:33.177 回答
10

这是另一个可行的解决方案:(如果您使用的是自定义 Pod)

  • 从侧边栏中选择“Pods”作为屏幕截图中的亮点。
  • 单击构建阶段。展开“标题”部分。有 3 个选项 Public、Private、Project
  • 展开公共并检查是否有重复文件。去掉它。完毕!!

在此处输入图像描述

于 2018-09-25T07:23:42.507 回答
10

所以我遇到的问题是我不小心将 Info.plist 包含在项目设置中 -> 构建阶段 -> 为我的目标复制捆绑资源。

于 2018-09-26T20:37:05.027 回答
9

我有一堆Multiple commands produce警告 - 不仅限于一个目标中的 info.plist 重复。包括本地化的资源和字符串文件、头文件等。

解决方案:删除目标成员中的所有重复项。

于 2018-06-07T22:28:05.243 回答
9

尝试所有这个选项,这 3 个选项中的任何一个都会为你工作,当然

Option 1: Remove all files from

目标>>构建阶段>>编译源

目标 >> 构建阶段 >> 复制捆绑资源

Option 2: Change the build system

Xcode->文件->项目设置->构建系统->旧版构建系统

Option 3: remove and update existing pod

pod cache clean PromisesObjC
pod cache clean PromisesSwift
cd [your_project_dir]
rm -rf Pods/
rm Podfile.lock
pod update

I hope this will help you, Happy coding :-)
于 2018-09-18T18:25:02.580 回答
9

脚步:

  1. 转到 Xcode 文件
  2. 点击进入工作区设置
  3. 构建系统选择作为旧版构建系统
于 2018-10-16T06:57:14.933 回答
9

我的错误是:

重复的输出文件

'/Users/home/Library/Developer/Xcode/DerivedData/myAppName-fawptgabysjowicvpeqydjniuovo/Build/Products/Debug-iphoneos/myAppName.app/ GoogleMaps.bundle ' 任务:PhaseScriptExecution [CP] Copy Pods Resources /Users/home/Library /Developer/Xcode/DerivedData/myAppName-fawptgabysjowicvpeqydjniuovo/Build/Intermediates.noindex/myAppName.build/Debug-iphoneos/myAppName.build/Script-32CCC25BF727B592A1784900.sh

我专注于问题文件GoogleMaps.bundle和该文件的位置[CP] Copy Pods Resources,以及它指定它是重复的事实output file(我在上面用黑色突出显示它们),这是下面的第四步

首先创建项目的副本,并确保首先在该副本上执行以下步骤

1-在项目导航器中,我转到了蓝色项目图标

在此处输入图像描述

2-我选择构建阶段

在此处输入图像描述

3-在我选择的构建阶段[CP] Copy Pods Resources

在此处输入图像描述

4- 在[CP] Copy Pods Resources我去了Output Files下面,我找到了以 . 结尾的文件GoogleMaps.bundle。我选择了它并按下减号将其删除。确保您转到输出文件而不是输入文件

在此处输入图像描述

5-我做了一个干净shift+cmmd+k的工作,然后当我构建项目时,错误消失了

奇怪的是,即使红色错误消失了,黄色警告仍然存在,但它起作用了:)

于 2019-10-15T09:53:44.277 回答
9

不幸的是,这些答案都不适合我......这是我看到的错误:

“多个命令产生'/Users/.../.../.../Frameworks/abcdef.framework”

  1. 该命令取决于命令...:脚本阶段“”
  2. 该命令取决于命令...:脚本阶段“”

将此行添加到 Podfile 并执行“Pod Install”是唯一有效的方法。

install! 'cocoapods', :disable_input_output_paths => true

我真的希望这对某人有所帮助。我花了几个小时试图解决这个问题,最终得到了它。

有时我只是希望 Xcode 能像 IntelliJ / Android Studio 一样高效 :(

祝你好运!

于 2021-01-26T21:22:11.147 回答
8

值得注意的是,在自动生成 Codegen 未设置为 Manual/None 的 CoreData 模型后,可能会产生此错误。

要在 Xcode 10 中更正此问题,请双击您的 xcdatamodeId 文件并选择每个实体并将 Codegen 设置为 Data Model Inspector 的 Class 下的 Manual/None。

于 2019-09-02T22:03:35.630 回答
8

如果您手动创建实体的 CoreDataClass 和 CoreDataProperties,请确保转到 xcdatamodel 并将检查器选项卡中的 Codegen 设置为“Manual/None”。如果将其设置为“类定义”,Xcode 将自动为您创建一个重复的类。

于 2020-04-09T03:50:26.343 回答
8

如果您在核心数据中遇到问题,这个答案是给您的。转到 yourfilename.xcdatamodeld 并确保所有实体都有手动/无 Codegen。 在此处输入图像描述

于 2021-06-22T15:16:00.203 回答
7

我使用 Carthage 和 Xcode 10。

我的解决方案是 -> 项目 -> 目标 -> 常规 ->

从“嵌入式二进制文件”中删除使用 Carthage 添加的框架

通常你必须在构建阶段添加一个脚本来剥离应用商店的架构。

在 Xcode 10 中,脚本似乎总是被调用。因此它将框架复制到正确的位置,您不必将它们添加到“常规”选项卡中。

注意:如果未设置 -> 在构建设置 -> 搜索路径 -> 框架搜索路径 -> 设置您使用 Carthage 添加的框架的路径 .... 例如。“$(PROJECT_DIR)/迦太基/构建/iOS”

于 2018-10-25T16:05:45.030 回答
7

我的一个 CocoaPods 已经过时并导致了这个问题。做了一个豆荚更新,它工作正常。

我相信它可能是 LivePerson SDK

于 2018-12-06T00:28:31.363 回答
7
error: Multiple commands produce '/Users/KunshtechNew/Library/Developer/Xcode/DerivedData/chat21-fgjaqebxysmggqfdnetggdbzfqih/Build/Products/Debug-iphonesimulator/Chat21.app/Base.lproj/Chat.strings':
1) Target 'chat21' (project 'chat21') has copy command from '/Users/KunshtechNew/Downloads/chat21-ios-demo-master/TildeskWidget/Chat21Core/Base.lproj/Chat.strings' to '/Users/KunshtechNew/Library/Developer/Xcode/DerivedData/chat21-fgjaqebxysmggqfdnetggdbzfqih/Build/Products/Debug-iphonesimulator/Chat21.app/Base.lproj/Chat.strings'
2) Target 'chat21' (project 'chat21') has copy command from '/Users/KunshtechNew/Downloads/chat21-ios-sdk-master 2/Chat21Core/Base.lproj/Chat.strings' to '/Users/KunshtechNew/Library/Developer/Xcode/DerivedData/chat21-fgjaqebxysmggqfdnetggdbzfqih/Build/Products/Debug-iphonesimulator/Chat21.app/Base.lproj/Chat.strings'

可以有两种不同的解决方案来解决这个问题:

解决方案 1

正如我们所看到的,我遇到了同样的错误..在我的情况下,TildeskWidget文件夹中有一个文件夹Chat21Core的额外副本..这是造成问题..所以一种可能的解决方案也可以完全阅读错误并且尝试查找是否有从项目中引用的任何额外副本。

解决方案 2

当我在不同项目中遇到相同类型的问题时,我发现了另一个简单的解决方案。这次我不得不应用不同的解决方案。

  • pod deintegrate从项目。
  • 从项目文件夹中删除工作区文件和 pod.lock 文件。
  • 再次pod install 尝试构建项目。

希望这可能对你有用..

于 2019-02-12T05:39:22.567 回答
7

我的问题是我创建的操作扩展和主要目标的重复Product Module Name。解决方案是更改扩展的产品模块名称(在构建设置下)。

(X代码 11)

于 2020-01-03T23:03:59.527 回答
6

有类似的问题,但使用 .swiftdoc 文件。

我在项目中有扩展和单元测试目标。并且它们具有与应用程序相同的“产品模块名称”(构建设置中的 PRODUCT_MODULE_NAME)。使名称独特的问题消失后。

于 2018-06-08T11:24:51.250 回答
6

搜索删除由多个命令生成的重复文件。

Info.plist在这里,应该删除一个额外的文件(在我的情况下是Contents.json

error: Multiple commands produce '/Users/uesr/Library/Developer/Xcode/DerivedData/OptimalLive-fxatvygbofczeyhjsawtebkimvwx/Build/Products/Debug-iphoneos/OptimalLive.app/Info.plist'
于 2018-09-19T11:19:52.950 回答
6

这基本上意味着您有多个名为Info.plist; 通常没问题,但不小心将您的文件设置为相同的目标成员。所以解决方法是:单击每个文件并检查右侧的目标成员身份,确保它们不重叠。

于 2018-09-26T18:36:29.763 回答
6

进入项目构建阶段并从编译源中删除 info.plist。它将消除该问题,并且项目将再次处于活动状态。

在此处输入图像描述

于 2018-10-11T18:53:49.403 回答
6

我的问题是在 Mojave 中运行 Xcode 10,并且在尝试运行我在更新到 XCode 10 之前编写的单元测试时。

就我而言,我在运行TestTarget目标时遇到了这个问题。为了解决,我不得不:

  • 删除目标依赖项之一(在TestTarget > build phases > Target Dependencies

因为除了我之外,我还有另外两个目标TestTarget,它们都在运行相同的脚本并在某个时间点创建/复制文件。

这与 Xcode 10的构建系统发行说明 中提到的内容相冲突:

由多个构建命令生成构建中的任何单个文件都是错误的。例如,如果两个目标都在 shell 脚本阶段声明了相同的输出文件,则将输出文件的声明分解为单个目标。

我从 Xcode 10.1 更新到 10.2 后的新更新

在我更新到 Xcode 10.2 后,类似的问题再次出现。我在项目中有多个目标:Target1Target2,我通过以下方式解决了这个问题:

  • 导航到Edit Scheme > Build
  • 从构建中删除一个目标:取消选中Target1下面的复选框,Test因为我知道Target2导入Target1

还要注意这里,Target2的复选框将保持选中状态Test

于 2018-10-15T21:41:32.483 回答
6

有一些原因会导致显示此错误。

1-项目名称与项目上使用的依赖项相同

当您为项目选择的名称与您在项目中使用的依赖项之一相同时,可能会发生此错误,例如,如果您通过 pod 或 SPM 使用它们,您无法选择FirebaseAuth或作为项目名称。GoogleSignIn

要解决此问题,您应该使用以下方式更改项目名称:

project navigator从左侧边栏中选择项目,从右侧边栏中的file inspector-> Identity and Type->更改项目名称name

在此处输入图像描述

更改后,XCode 会要求您更改所有相关目标,然后按重命名。

在此处输入图像描述

2 - 复制捆绑资源部分上的重复 info.plist

当 info.plist 添加到Copy Bundle resources不需要时,您可能会遇到此错误,请选择项目表单project navigator-> 选择目标 -> 转到Build Phases选项卡 ->Copy Bundle Resources如果您在那里看到 info.plist,请通过选择 info.plist 将其删除,如下图所示

在此处输入图像描述

3 - pod 文件无法正常工作

有时您会收到此错误,因为您使用的依赖项因意外原因而中断。

1 - 删除 Podfile.lock

2 - 删除 Pod 目录

3 - 删除派生数据并清理(您可以从XCode菜单 -> Preferences...-> Locations->找到此目录Derived Data,然后单击地址右侧的箭头图标进入该目录)

4 - 退出 Xcode

[sudo] gem install cocoapods5 -在 mac 终端上更新 CocoaPods

6 - 转到终端上的项目目录并运行pod install

7 - 打开工作区并构建

5-重复的核心数据

在项目中使用 Core 数据时可能会遇到这个问题

首先我解释 coreData 代码生成类型:

在此处输入图像描述

**类定义:** 当您不需要编辑托管对象子类的属性或功能以及 Core Data 为您生成的属性文件时,请选择类定义。

类别/扩展:选择类别/扩展以在托管对象子类中添加其他便利方法或业务逻辑。

手动/无:选择手动/无以编辑托管对象子类中的属性,例如,更改访问修饰符,并添加其他便利方法或业务逻辑。

选择Manual/None并检查 xcmod​​eldata 的副本是否存在于 上CopyBundleRecources,将其删除。

在此处输入图像描述

于 2022-01-06T18:30:15.147 回答
5

选择您的方案(左上角)-> 编辑方案...-> 构建(左侧选项卡)-> 取消选中“查找隐式依赖项”

在此处输入图像描述

之后,您可能需要修复目标未明确导入的任何依赖项。

于 2018-12-04T08:23:31.517 回答
5

就我而言,构建存档错误与 Xcode10

-1:多个命令产生'/Users/kk/Library/Developer/Xcode/DerivedData/react_carday_app-hjahojxsbvmmiyaklrhhuqljdfwv/Build/Intermediates.noindex/ArchiveIntermediates/react_carday_app/IntermediateBuildFilesPath/UninstalledProducts/iphoneos/libyoga.a':1)目标'yoga ' 有一个输出命令 '/Users/kk/Library/Developer/Xcode/DerivedData/react_carday_app-hjahojxsbvmmiyaklrhhuqljdfwv/Build/Intermediates.noindex/ArchiveIntermediates/react_carday_app/IntermediateBuildFilesPath/UninstalledProducts/iphoneos/libyoga.a' 2) 目标 'yoga'有一个输出命令'/Users/kk/Library/Developer/Xcode/DerivedData/react_carday_app-hjahojxsbvmmiyaklrhhuqljdfwv/Build/Intermediates.noindex/ArchiveIntermediates/react_carday_app/IntermediateBuildFilesPath/UninstalledProducts/iphoneos/libyoga.a'

您的 Podfile 中应该有类似下面的内容

post_install do |installer|
  installer.pods_project.targets.each do |target|
    if target.name == "React"
      target.remove_from_project
    end

    if target.name == "yoga"
      target.remove_from_project
    end
  end
end

然后运行pod install

于 2019-01-24T03:02:27.457 回答
5

我是 IOS 开发的新手,我尝试了上述答案,但它们对我不起作用。

我的 XCode 版本是 12.4,Swift 5

我在构建时遇到Multiple commands produce错误

我试图从错误列表中展开错误,但双击它什么也没做,所以首先我很难知道完整的错误。

所以我右键单击错误并复制到剪贴板,将其粘贴到文本编辑器中。

它显示了完整的错误

说哪个部位有问题

Multiple commands produce '/Users/userName/Library/Developer/Xcode/DerivedData/ProjectName-fbeqffupediuiedlrplqjyhgyqna/Build/Products/Production-iphoneos/XCFrameworkIntermediates/GoogleAppMeasurement':
1) That command depends on command in Target 'GoogleAppMeasurement-iOS12.3' (project 'Pods'): script phase “[CP] Copy XCFrameworks”
2) That command depends on command in Target 'GoogleAppMeasurement-iOS14.1' (project 'Pods'): script phase “[CP] Copy XCFrameworks”

(我正在使用 Google Firebase)

我很惊讶地看到 Pod 正在为 2 个不同版本的 iOS(12.3 和 14.1)编译

我发现,在活动目标配置中,我在部分中设置了 iOS 12.3,在项目级别选项卡中设置了Deployment Info14.1Deployment TargetInfo

将两者设置为相同的所需版本,然后清理并构建解决了该问题。

请让我知道设置 2 个不同的版本是否错误。如果这不是一个错误,那么要记住以下几点:

  • 我不允许将构建系统设置为旧版
  • info.plistCopy Bundle Resources相中不存在
于 2021-05-19T06:54:15.797 回答
4

我对 plist 也有同样的问题。结果我有两份副本,一份是空的,一份在我的本地化资源文件夹中。删除其中一个(空的)解决了这个问题。

如果您检查错误,则第 1) 行和第 2) 行具有不同的路径。您可能在复制阶段将此文件定义了两次。

检查您的目标属性、构建阶段、复制捆绑资源,并查找重复的 info.plist。找出哪个路径不正确并将其删除。(您可能还想从文件系统中删除它。)

于 2018-06-06T21:47:28.760 回答
4

移至 Xcode 10,错误如

error: Multiple commands produce '/Users/uesr/Library/Developer/Xcode/DerivedData/OptimalLive-fxatvygbofczeyhjsawtebkimvwx/Build/Products/Debug-iphoneos/OptimalLive.app/Info.plist':

可以解决如下:

Xcode->File->Workspace/Project Settings-> Build System -> Legacy Build System

于 2018-07-29T10:22:02.877 回答
4

在 Xcode 10 中,它也适用于以前的版本

  1. 双击项目
  2. 你会看到如下图
  3. 从左侧选择目标
  4. 展开复制捆绑资源(0 项)
  5. 删除产生错误的相应文件

在此处输入图像描述

于 2019-01-25T09:36:42.367 回答
4

就我而言,我GoogleService-Info.plist两次失望地向我的 Firebase 项目添加了文件。

我删除了第一个添加GoogleService-Info.plist并解决了问题。

于 2019-07-10T06:43:09.837 回答
4

删除该死的资产文件

解决方案 -> 打开目标 -> 构建阶段 > 复制捆绑资源并从那里删除资产。

于 2020-04-06T01:30:06.100 回答
3

对于由 cocoapods 管理的依赖项目,通过提供本地 podspec 以从源中排除 info.plist 来解决问题。以godzippa为例

播客文件 pod 'Godzippa', :podspec => "venders/godzippa.podspec"

供应商/godzippa.podspec s.source_files = 'Sources/*.{h,m}'

于 2018-09-20T09:02:57.530 回答
3

在我的例子中,一个 Info.plist 文件是从我的一个 Cocoapods 中挖出来的。删除它并解决了问题。

于 2018-09-20T17:08:05.890 回答
3

此处相同,但这是 2020 年 5 月的最新解决方案

它看起来像一个错误或新 Xcode 版本的一些新问题。

错误响应是:

无法构建 iOS 项目。我们运行了“xcodebuild”命令,但它以错误代码 65 退出。

详细回复:

构建系统信息错误:多个命令产生'/path/of/the/project/ios/build/NameOfTheProject/Build/Products/Debug-iphonesimulator/NameOfTheProject.app/Zocial.ttf':

1)目标'NameOfTheProject'(项目'NameOfTheProject')具有从'/path/of/the/project/NameOfTheProject/node_modules/react-native-vector-icons/Fonts/Zocial.ttf'到'/path/of'的复制命令/the/project/NameOfTheProject/ios/build/NameOfTheProject/Build/Products/Debug-iphonesimulator/NameOfTheProject.app/Zocial.ttf'

2) 该命令取决于目标“NameOfTheProject”(项目“NameOfTheProject”)中的命令:脚本阶段“[CP] Copy Pods Resources”</p>

构建系统信息错误:多个命令产生'/path/of/the/project/ios/build/NameOfTheProject/Build/Products/Debug-iphonesimulator/NameOfTheProject.app/SimpleLineIcons.ttf':

1)目标'NameOfTheProject'(项目'NameOfTheProject')具有从'/path/of/the/project/NameOfTheProject/node_modules/react-native-vector-icons/Fonts/SimpleLineIcons.ttf'到'/path/of'的复制命令/the/project/NameOfTheProject/ios/build/NameOfTheProject/Build/Products/Debug-iphonesimulator/NameOfTheProject.app/SimpleLineIcons.ttf'

2) 该命令取决于目标“NameOfTheProject”(项目“NameOfTheProject”)中的命令:脚本阶段“[CP] Copy Pods Resources”</p>

...

该响应针对库使用的每个 .ttf 文件重复。

我不得不临时react-native unlink react-native-vector-icons,并且项目再次构建,但没有图标。

于 2020-05-04T07:14:03.660 回答
3

[更新] 尝试检查 Project-> Targets -> (Your name Project) -> Copy Bundle Resources,并检查是否存在与您的错误相关的文件名重复。

找到重复名称后,删除显示错误的一个路径。

在此处输入图像描述

上图显示我已经删除了错误的。抱歉,我没有截屏错误图片。如果再次面对它会更新。

于 2021-10-05T18:36:20.067 回答
2

就我而言,我已经GoogleService-info.plist多次复制了我的文件,因为它包含在我的主应用程序和共享扩展项目中。

解决方案是将此文件从扩展项目中排除(通过在其文件检查器侧窗口视图中从目标中取消选中它);因为我不喜欢切换到旧版构建系统的选项(这也适用于我)。

于 2018-09-26T06:43:06.983 回答
2

在我们的例子中,我们只是清理了“复制捆绑资源”中的所有碎片,只留下了最少的项目。

在此处输入图像描述

于 2019-12-31T11:59:25.250 回答
2

评论 use_frameworks!在 PodFile 中为我工作。

#use_frameworks!

注意:在 XCode 10.1、pod 版本 1.8.4 上执行此操作

于 2020-02-07T06:04:18.783 回答
2

我的情况与Damo 的情况类似——一些产品被两次添加到 Pods 项目中。我的 Podfile 的结构是:

# platform :ios, '11.0' 

def shared_pods
  use_frameworks!
  pod 'SharedPod1'
end

target 'Target1' do
  pod 'SomePod1'
  shared_pods
end

target 'Target2' do
  shared_pods
end

并且所有共享 pod 都添加了两次。取消注释第一行,然后pod install解决问题。

于 2020-02-18T14:12:24.903 回答
1

就我而言,问题来自podfile。我必须我的测试项目添加到podfile

target 'MyApp' do
    pod 'Firebase'
    target 'MyAppTests' do
        inherit! :search_paths
        pod 'Firebase'
    end
end

之后,我需要执行:

pod update
于 2019-02-13T02:58:22.000 回答
1

对于那些使用 React Native 和 Cocoapods 的人

该问题是由一些libRN...a文件产生的。我通过从Build Phases -> Link Binary with Libraries中删除其中一些(如 libRNScreens.a 和 libRNGestureHandler.a )来修复它,因为它们已经被其他库引用。其他的必须替换为他们的 Pod 版本,例如 libRNDeviceInfo.a:

在此处输入图像描述 在此处输入图像描述

于 2019-04-18T02:57:48.040 回答
1

在我的情况下,清理被剥夺的数据和构建设置(按此顺序),并重新启动 Xcode 和 Simulator 有所帮助。

我尝试执行解决方案 -> 打开目标 -> 构建阶段 > 复制捆绑资源,但它再次出现在那里。清理被剥夺的数据有帮助。在错误中,它显示重复项在哪里,在我的情况下,它说它在我的应用程序包中并且在被剥夺的数据中。

于 2019-06-27T20:14:55.347 回答
1

问题: 在命令行中为 Cocoapod 项目创建 xcodebuild 存档时遇到错误。

控制台中的错误: 错误:多个命令产生'/Users/xxxx/Library/Developer/Xcode/DerivedData/...':

解决此问题的步骤:

  1. 打开 Xcode
  2. 在 Xcode 编辑器顶部选择方案
  3. 选择编辑方案
  4. 在弹出窗口的左栏中选择构建。
  5. 如果添加了除与已编辑方案相关的目标之外的任何其他目标。
  6. 选择不相关的目标并通过按“减号图标”将其删除并关闭弹出窗口。
  7. 在命令行中再次运行 xcodebuild 命令以解决问题。

带图说明:

第1步:

选择方案

第 3 步:

选择编辑方案

步骤 4-6:

删除不相关的目标并保存

于 2019-09-09T07:11:31.197 回答
1

多重生成错误是由我的隐藏文件触发的(.gitkeep)仔细查看你的编译源,我相信这个文件在编译源中,但它显示为一个空行。它实际上并没有说出隐藏文件的名称,但我删除了空白行并解决了问题,所以我怀疑项目导航器没有显示隐藏文件。

于 2019-10-04T19:36:04.940 回答
1

在我的情况下,我有一个修改过的手表项目,其中应用程序和扩展程序都有一个info.plist文件(都以相同的名称命名),为了解决这个问题,我已将 ios 应用程序的文件重命名为我将其保留为info.plist我命名的手表它watch_info.plist等等之后我修改了包装info.pilst下的“项目->目标->构建设置”并相应地修改了plist文件名,这为我解决了

请注意,我在其他地方看到在项目/工作区设置下将构建系统从新系统更改为旧系统,尽管它有效 - 我不推荐这样做,因为它会导致其他问题。

于 2020-02-20T07:52:09.523 回答
1

的重复Product Name也可能导致相同的问题,尤其是当您在单个工作区中创建多个扩展目标时。

确保您也Product Module Name根据@Lirik 的回答进行检查。

于 2020-08-31T13:01:13.400 回答
1

有时出现此问题的原因是您有多个具有不同 iOS 部署目标的目标。只需检查您的目标(例如您的主应用程序目标和您的扩展程序)是否具有相同的 iOS 部署目标。

于 2020-11-09T08:21:48.410 回答
1

我注意到目标Run Script Phases[EC] Embed Pods Frameworks. 删除后Run Script,问题解决了。

在此处输入图像描述

于 2022-02-04T22:06:42.890 回答
0

就我而言,我从另一个项目导入了文件,并且在两个位置有相同的类。

我有以下相关的错误消息:在此处输入图像描述

当我复制错误时,结果复制了很多更多的文本信息,当我阅读转储时,我来到了相关行:

:0:错误:文件名“EventNode.swift”使用了两次:

紧随其后的是位置,让我能够消除问题。

在此过程中,我发现了“复制捆绑资源”中需要包含的内容:

  • 主故事板
  • 资产.xcassets
  • 您的项目使用的任何 SpriteKit 场景 (.sks)
于 2018-06-18T09:52:12.557 回答
0

我遇到了同样的问题,但头文件。

在此处输入图像描述

在这种情况下,解决方案是将标题从“公共”移动到“项目”部分。

在此处输入图像描述

于 2018-06-29T10:23:15.943 回答
0

对我来说,问题与捆绑资源中包含两次相同的文件有关。不知道那是怎么发生的,但我删除了其中一个,它使用新的构建系统编译得很好。

于 2018-09-17T23:54:52.137 回答
0

ProjectName.xcodeproj对同名文件有有效和无效的引用。项目导航器中的文件名相同,一个文件名是红色的,另一个是好的。我摆脱了无效的参考(红色的),问题解决了。

于 2018-09-21T05:22:22.937 回答
0

就我而言,我对两个不同的静态库有相同的自定义公共头文件文件夹路径。一个用于主应用程序,另一个用于手表应用程序。更改了手表应用程序的路径,现在一切正常。

于 2018-09-21T13:34:26.300 回答
0

就我而言(我正在使用迦太基)的问题

error: Multiple commands produce 
1) Target *** has copy command from
2) That command depends on command in Target ***: script phase “Run Carthage Script” 

是由于 在构建阶段配置中将框架导入嵌入框架运行迦太基脚本 阶段而引起的

这两个阶段将框架复制到派生数据,因此 Xcode 会看到重复的文件并打印这些错误并发出警告:

ignoring duplicated output file: (in target ***)

嵌入式框架阶段删除重复的框架后,一切正常。

于 2018-09-24T11:11:28.780 回答
0

我有同一个文件的多个副本。简单地说,保留一份并删除所有剩余的。清洁构建,问题排序。

于 2018-09-26T10:42:11.933 回答
0

如果您的错误问题是 .app/(而不是 .app/Info.plist),请在此处查看此答案:xcode 10 error: multiple commands generate - react native

于 2018-10-12T17:17:49.000 回答
0

好的,对于那些在这里没有找到正确答案的人来说,因为它与 info.plist 无关......

我在开发一个没有 CocoaPods 或 Carthage 的 macOS 应用程序时遇到了这个问题,只是使用 SPM 包,手动将xcodeprojs 拖到工作场所。

当我只使用一个依赖项(它在内部使用 Swift-NIO)时,一切都很好,但是当我添加一个具有重叠子依赖项的另一个依赖项时,我遇到了这个讨厌的问题。

解决方案是尝试分别编译所有主要依赖项(由于各个.build文件夹中不存在签出文件夹而失败,这很可能是因为您将 pkgs 置于编辑模式(swift package edit YourPkg ...)。

您只是unedit您的 pkgs,并强制所有依赖项成功编译。之后,您必须确保主目标中的链接二进制文件没有重叠(我不确定它是否真的有必要,但以防万一)。

在那之后,一切都应该很好:)

于 2018-12-19T15:48:23.937 回答
0

对于依赖名称与 Swift 标头导入相同的人。(例如:头文件名:)#import "MyApp-Swift.h"

这个头文件的名字实际上是由${SWIFT_MODULE_NAME}-Swift.hwhere SWIFT_MODULE_NAMEusedPRODUCT_MODULE_NAME作为默认值决定的。

此外,还有一个项目范围的构建设置:SWIFT_OBJC_INTERFACE_HEADER_NAME“Objective-C Generated Interface Header Name”,默认值为${SWIFT_MODULE_NAME}-Swift.h. 通过将此值更改为MyApp-Swift.h我们聚合构建中的所有目标都能够共享相同的标头名称,并且我们能够从它们更改PRODUCT_MODULE_NAME值。

于 2018-12-19T19:51:03.353 回答
0

如果您在使用 React Native 时遇到此错误,特别是使用 时libyoga.a,请查看Github 评论

于 2019-01-06T12:20:52.907 回答
0

如果您的应用程序正在生成与多个文件相关的错误,则从“复制捆绑资源”.app中删除这些文件将不起作用。.plist

如果错误与 .app 文件有关,请按照以下步骤操作

  1. 选择目标。

  2. 转到Build Phases选项卡。

  3. 删除列出的项目Output Files
  4. 如果编译成功,则编译代码,然后不执行后续步骤。
  5. 如果代码没有成功编译并且 Xcode 可能会给你一个与“找不到库”相关的错误。然后在错误中提到的那个 Xcode 中的GeneralTab 中添加缺少的库。Linked Frameworks and Libraries
  6. 继续添加这些库(Xcode 通过编译错误询问),Linked Frameworks and Libraries直到代码编译成功。

    希望这可以帮助。

于 2019-01-23T06:38:58.760 回答
0

实际上,您可以使用旧版构建系统,但不会获得快速的构建时间,即)您不会获得在 XCode10 中默认设置的新构建系统功能这只是不获取最新构建功能的一种解决方法 https:// developer.apple.com/documentation/xcode_release_notes/xcode_10_release_notes/build_system_release_notes_for_xcode_10

于 2019-03-12T06:19:26.127 回答
0

如果您开发私有cocoapod,并且已经通过添加它Podfile

从部分中删除它Embedded Binaries

测试应用程序中的嵌入式二进制文件

于 2019-04-30T09:06:08.493 回答
0

检查您支持的平台!

我们花了几个月的时间用我们的几个子项目来研究这个问题。我们发现AVAILABLE_PLATFORMS设置为"appletvos appletvsimulator iphoneos iphonesimulator macosx watchos watchsimulator"哪个会导致构建多个平台,这会导致“多个命令产生错误”。例如,“Foo”平台正在为 iOS 和 TVOS 构建,因此多个构建命令正在创建一个Foo.framework文件。

一旦我们设置

AVAILABLE_PLATFORMS = iphoneos iphonesimulator

在我们的根xcconfig文件中,这个问题消失了所有子项目。

检查您的配置

xcodebuild -project FitbitMobile.xcodeproj -target "FitbitMobile" -showBuildSettings > BuildSettings.txt

查看输出是否设置为您所期望的。如果你是一个 iOS 应用程序并且你正在为 tvOS 构建,你会想要更新你的配置。

于 2019-05-10T15:47:23.633 回答
0

我遇到了同样的问题,但是可以通过删除关联的 .png 和图标资产目录然后构建应用程序来解决它。由于资产丢失,这会产生预期的错误。之后,我再次添加了所有内容并毫无问题地构建了应用程序。

于 2020-09-28T15:50:29.283 回答
0

1- 删除所有应用程序的 DerivedData 2- 打开终端 3- 更新 Pod 一切都已完成

于 2020-12-28T21:03:49.733 回答
0

没有旧版构建系统如果你有这样的 Podfile

def shared_pods
  pod 'X'
end

target 'A' do
  shared_pods
end

target 'B' do
  shared_pods
end

并且 B 也依赖于 A 然后像这样将 B 移动到 A

 target 'A' do

   shared_pods

   target 'B' do
     inherit! :search_paths
   end
 end
于 2021-03-31T20:38:44.350 回答
0

在创建框架时也会遇到此错误。

在您的框架项目中,如果您有应用程序目标,并且您在部署信息部分为每个应用程序目标设置了不同的 iOS 版本,那么pod install将为同一个 pod 创建一个带有 ios 版本后缀的新目标。

您可以通过转到 pod 目标来检查这一点。如果您看到重复,那就是您的问题。Xcode因此而感到困惑并抛出这样的错误。

Multiple commands produce '/Users/userName/Library/Developer/Xcode/DerivedData/ProjectName-fbeqffupediuiedlrplqjyhgyqna/Build/Products/Production-iphoneos/XCFrameworkIntermediates/SomePodFramework':
1) That command depends on command in Target 'SomePodFramework-iOS10.0' (project 'Pods'): script phase “[CP] Copy XCFrameworks”
2) That command depends on command in Target 'SomePodFramework-iOS13.0' (project 'Pods'): script phase “[CP] Copy XCFrameworks”

这是你需要做的。

  1. 使所有目标的部署信息下的所有最低 ios 版本都相同。这将确保当您进行 pod install 时,cocoapods 不会根据多个 ios 版本创建同一个 pod 的新目标。
  2. 关闭你的工作区。删除 xcworkspace、Podfile.lock 和 Pods 文件夹。
  3. 运行pod install

现在,当您打开工作区时,您可以再次检查 pod 目标。你会看到没有重复。

现在只需将所有目标的部署信息更改为原来的。

于 2021-10-17T09:06:07.227 回答
0

对我来说,它只是有两个同名的文件。

于 2021-12-31T19:37:36.873 回答
0

对我来说,那是我嵌入 cocoapod 框架的时候。您需要做的就是从通用构建目标的嵌入内容选项卡中删除它。

于 2022-01-06T17:57:53.240 回答