Xcode 10错误:产生多个命令

时间:2018-06-06 10:22:17

标签: info.plist xcode10

error: Multiple commands produce '/Users/uesr/Library/Developer/Xcode/DerivedData/OptimalLive-fxatvygbofczeyhjsawtebkimvwx/Build/Products/Debug-iphoneos/OptimalLive.app/Info.plist':
1) Target 'OptimalLive' has copy command from '/Users/uesr/Desktop/workSpace/SEALIVE/SeaLive1.1/OptimalLive/Info.plist' to '/Users/uesr/Library/Developer/Xcode/DerivedData/OptimalLive-fxatvygbofczeyhjsawtebkimvwx/Build/Products/Debug-iphoneos/OptimalLive.app/Info.plist'
2) Target 'OptimalLive' has copy command from '/Users/uesr/Desktop/workSpace/SEALIVE/SeaLive1.1/OptimalLive/Server/Masonry/Info.plist' to '/Users/uesr/Library/Developer/Xcode/DerivedData/OptimalLive-fxatvygbofczeyhjsawtebkimvwx/Build/Products/Debug-iphoneos/OptimalLive.app/Info.plist'
3) Target 'OptimalLive' has process command with input '/Users/uesr/Desktop/workSpace/SEALIVE/SeaLive1.1/OptimalLive/Info.plist'

在Xcode9中运行代码有效,但在Xcode10中会导致错误。

78 个答案:

答案 0 :(得分:750)

由于App中有多个Plist或其他文件,可能会出现此问题 -

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

enter image description here

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

答案 1 :(得分:415)

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

  
      
  1. 在Xcode中,转到“文件”->“项目/工作区设置”。
  2.   
  3. 将构建系统更改为“旧版构建系统”。
  4.   

enter image description here 它将解决新的Xcode 10的构建问题。

如果要使用新的构建系统,则可以找到故障排除帮助from this apple Xcode help page

希望这会有所帮助!

答案 2 :(得分:148)

转到Xcode->文件->工作区设置。 您会发现一个弹出窗口。

enter image description here

从“构建系统”标签中选择“ 旧版构建系统”。 按下“ 完成

注意:-请确保使用“ cmd + shift + alt + k ”和“ 衍生数据

构建您的项目,它将很有吸引力:)

答案 3 :(得分:92)

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

答案 4 :(得分:55)

如果您通过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

答案 5 :(得分:40)

我正在试验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. 确保数据模型包含在“复制包资源”列表中。如果缺少它,请添加它。

答案 6 :(得分:34)

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

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

答案 7 :(得分:26)

尝试此方法:

在Xcode中,转到“文件”->“项目/工作区”设置。

将构建系统更改为旧版构建系统。

答案 8 :(得分:22)

如果您使用CocoaPods,则可能要尝试拆解Pod并重新安装。它对我有用。

pod deintegrate

pod install

答案 9 :(得分:16)

该答案已弃用-XCode 12已弃用旧版构建系统,它将在以后的版本中删除

我正在使用XCode 11.4 无法建立旧项目

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

enter image description here

enter image description here

答案 10 :(得分:15)

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

enter image description here

答案 11 :(得分:12)

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

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

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

enter image description here

答案 12 :(得分:11)

这里提出的所有解决方案都不适合我。这尤其是由于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. 打开工作区并构建

答案 13 :(得分:10)

请尝试所有此选项,这3个选项中的任何一个都可以为您工作

Option 1: Remove all files from
  

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

     

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

Option 2: Change the build system
  

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

Option 3: remove and update existing pod
  

pod缓存清理PromisesObjC
  容器缓存清理PromisesSwift
  cd [your_project_dir]
  rm -rf豆荚/
  rm Podfile.lock
  吊舱更新

I hope this will help you, Happy coding :-)

答案 14 :(得分:9)

在开始注意之前,我的项目将迦太基用作依赖项管理器。

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

首先,我注意到构建错误特别指出了一个框架。接下来,我过滤了该框架的“应用目标”>“构建阶段”。我注意到“链接二进制库”和“嵌入框架”中都存在该框架。注意到“嵌入的框架”下列出的框架都不是由迦太基管理的框架,因此我从“嵌入的框架”中删除了该框架。然后,我重新构建了项目,并且一切正常,包括所讨论的框架启用的功能。

答案 15 :(得分:9)

步骤:

  1. 转到Xcode文件
  2. 点击进入WorkSpace设置
  3. 构建系统选择为旧版构建系统

答案 16 :(得分:8)

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

简介:您可能同时具有自动生成和手动生成的Core Data管理的对象类文件。

如果错误的第一行引用的是 Foo + CoreDataProperties.o Foo + 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

根本原因可以通过展开“编译记录”的编译Swift源文件部分来查看。例如:

<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'

提到的第一个文件在您的项目目录中有一个源文件,该文件是通过在项目导航器中选择您的数据模型并单击菜单中的 Editor > Create Managed Object Subclass生成的。 。此功能是在Xcode 7左右添加的。

第二个文件是同名文件,但被埋在Xcode的DerivedData中。如果数据模型(.xcdatamodeld)文件包含在目标的 Compile Sources 构建阶段中,则Xcode在每次构建期间会自动生成此文件。此功能是在Xcode 9左右添加的。根据 Codegen 弹出窗口的设置,为每个实体/类生成零个,一个或两个文件。当您在编辑数据模型时选择一个实体时,该弹出窗口位于数据模型检查器中。

screenshot of Data Model Inspector

设置为:

  • 手动/无未生成文件
  • 类别/扩展:生成一个文件,即 Foo + CoreDataProperties.m .swift ,其中包含一个Objective-C类别或Swift扩展。
  • 类定义:会生成相同的“类别/扩展名”文件,此外还会生成 Foo + CoreDataClass.m .swift ,包含类声明和定义。

因此,您会看到当习惯了较旧Xcode的开发人员(如我)在较新的Xcode中开始项目时发生了问题。我们认为我们需要使用 Create Managed Object Subclass 菜单项来创建我们可以在Project Navigator中看到的文件,而又没有意识到我们在 Codegen < / em>弹出窗口会导致Xcode创建重复文件,Apple“巧妙地”不会在项目导航器中显示这些文件,因为它们不信任开发人员阅读并注意标头 //此文件是自动生成的,不应进行编辑。

解决方案1-使用较旧的方法

您可以仅使用一种设置就禁用数据模型的所有自动 Codegen

  • 打开问题目标的构建阶段(在 Project Navigator 中,选择项目,然后在出现的 TARGETS 列表中,选择问题目标,然后点击构建阶段)。
  • 展开 Compile Sources 条目并找到问题数据模型(.xcdatamodeld文件)。
  • 从编译列表中删除它
  • 确保数据模型包含在副本捆绑资源列表中。

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

在这里,您将以全新的方式全力以赴。

  • 将数据模型保留在 Compile Sources 中。
  • 在数据模型中的每个实体检查器中,将 Codegen 设置为 Class Definition
  • 在项目导航器中,删除并丢弃所有 Foo + CoreDataClass 文件,然后重命名任何 Foo + CoreDataProperties.m .swift 文件类似于 Foo + MyProperties
  • 在每个 Foo + MyProperties.m .swift 文件中,如果存在Xcode生成的属性,请删除这些属性,因为它们将位于由Xcode创建的隐藏文件中 Codegen

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

解决方案3-适用于大多数实际应用

但是,如果您真的要添加非托管属性,则解决方案2不好。 (Objective-C不允许将属性添加到类别中,而Swift不允许将存储的属性添加到扩展中。)因此,在大多数实际应用中,您可能希望在解决方案1和解决方案2之间过渡一半……

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

(对Positron的回答表示感谢。我在这里的回答解释了Positron的答案(我的解决方案1)起作用的原因,并添加了解决方案2和解决方案3。)

答案 17 :(得分:8)

解决方案1:
在Xcode中,转到“文件”->“项目/工作区”设置。
将构建系统更改为旧版构建系统

解决方案2:
打开目标->构建阶段>复制捆绑资源,然后从其中删除 info.plist 。 ->您也必须从扩展中删除plist(如果有)。

解决方案3:
如果您使用CocoaPods,则可能要尝试集成吊舱并再次安装。 命令:

1) pod deintegrate
2) pod install

答案 18 :(得分:7)

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

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

答案 19 :(得分:7)

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

答案 20 :(得分:6)

我使用Carthage和Xcode 10。

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

从“嵌入式二进制文件”中删除随迦太基添加的框架

通常,您必须在“构建阶段”中添加脚本以剥离应用商店的体系结构。

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

注意:如果未设置->在“构建设置”->“搜索路径”->“框架搜索路径”->中,设置与Carthage ....一起添加的Framework的路径。 “ $(PROJECT_DIR)/ Carthage / Build / iOS”

答案 21 :(得分:6)

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

答案 22 :(得分:5)

值得注意的是,在Codegen未设置为“手动/无”的情况下自动生成CoreData模型后,可能会产生此错误。

要在Xcode 10中更正此问题,请双击xcdatamodeId文件并选择每个实体,然后在数据模型检查器的“类”下将Codegen设置为“ Manual / None”。

答案 23 :(得分:5)

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

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

答案 24 :(得分:5)

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

enter image description here

答案 25 :(得分:4)

我的一个CocoaPods不满意并引起了问题。吊舱是否进行了更新,并且运行正常?

我相信可能是LivePerson SDK

答案 26 :(得分:4)

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

就我而言,在运行TestTarget目标时遇到了这个问题。要解决,我必须:

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

因为除了TestTarget之外我还有两个其他目标,而且两个目标都运行相同的脚本并在特定点创建/复制文件。

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

  

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

从Xcode 10.1更新到10.2后的新UPDATE

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

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

在此还要注意的是,Target2的复选框将保持选中状态,Test

答案 27 :(得分: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

答案 28 :(得分:4)

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

  • 从侧边栏中选择“吊舱”作为屏幕快照中的突出显示。
  • 单击“构建阶段”。展开“标题”部分。有3个选项,公共,私有,项目
  • 展开“公开”并检查是否有重复的文件。去掉它。 完成!

enter image description here

答案 29 :(得分:4)

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

我在项目中有扩展和单元测试目标。他们将相同的“产品模块名称”(Build Settings中的PRODUCT_MODULE_NAME)作为应用程序。在使名字独特的问题消失后。

答案 30 :(得分:3)

我的错误是:

  

复制输出文件

     

'/ Users / home / Library / Developer / Xcode / DerivedData / myAppName-fawptgabysjowicvpeqydjniuovo / Build / Products / Debug-iphoneos / myAppName.app / GoogleMaps.bundle ”   执行任务:PhaseScriptExecution [CP]复制Pod资源   /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-在项目导航器中,我转到了蓝色项目图标

enter image description here

2-我选择了构建阶段

enter image description here

3-在“构建阶段”下,我选择[CP] Copy Pods Resources

enter image description here

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

enter image description here

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

奇怪的事情是即使红色错误消失了,黄色警告仍然存在,但仍然有效:)

答案 31 :(得分:3)

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

(XCode 11)

答案 32 :(得分:3)

搜索删除重复文件,这些文件是通过多个命令生成的。

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

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

答案 33 :(得分:3)

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

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

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

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

install! 'cocoapods', :disable_input_output_paths => true

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

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

祝你好运!

答案 34 :(得分:3)

这基本上意味着您有多个名为Info.plist的文件; 通常没关系,但是您的文件偶然设置为相同的目标成员身份。因此,解决方法是:单击每个文件并在右侧检查其目标成员身份,确保它们没有重叠。

答案 35 :(得分:2)

在我的情况下,从我的一个Cocoapods中搜出了一个Info.plist文件。删除并解决了问题。

答案 36 :(得分:2)

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

Podfile pod 'Godzippa', :podspec => "venders/godzippa.podspec"

venders / godzippa.podspec s.source_files = 'Sources/*.{h,m}'

答案 37 :(得分:2)

如果您在核心数据方面遇到问题,此答案将为您提供。 转到 yourfilename.xcdatamodeld 并确保所有实体都有手动/无代码生成。 enter image description here

答案 38 :(得分:2)

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

enter image description here

然后,您可能需要修复目标未明确导入的所有依赖项。

答案 39 :(得分:2)

删除该死的资产文件

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

答案 40 :(得分:2)

我和plist有同样的问题。 事实证明我有两个副本,一个是空的,一个在我的本地化资源文件夹中。 删除其中一个(空的)解决了这个问题。

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

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

答案 41 :(得分:2)

解决我问题的一个方法是将构建系统更改为旧版构建系统。请按照Xcode 10+中的以下步骤进行操作 enter image description here

enter image description here

答案 42 :(得分:2)

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

它看起来像是bug或新的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'复制到'/ /项目/项目/项目名称/ ios / build /项目名称/构建/产品/ Debug-iphonesimulator /项目项目的名称.app / Zocial.ttf'

2)该命令取决于目标“ NameOfTheProject”(项目“ NameOfTheProject”)中的命令:脚本阶段“ [CP]复制容器资源”

构建系统信息 错误:多个命令产生了“ /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'复制到'/ /项目/项目/名称/项目/ ios / build /项目的名称/构建/产品/ Debug-iphonesimulator /项目的名称.app / SimpleLineIcons.ttf'

2)该命令取决于目标“ NameOfTheProject”(项目“ NameOfTheProject”)中的命令:脚本阶段“ [CP]复制容器资源”

...

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

我不得不暂时react-native unlink react-native-vector-icons,然后再次构建项目,但没有图标。

答案 43 :(得分:2)

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'

我们可以看到我遇到了相同的错误..就我而言,在“ TildeskWidget ”文件夹中有文件夹“ Chat21Core ”的额外副本。这是造成问题。 因此,一种可能的解决方案也可以完全读取错误,然后尝试查找是否有项目引用了其他副本。

答案 44 :(得分:1)

在我的情况下,我的GoogleService-info.plist文件被复制了多个,因为它既包含在我的主应用程序中,又包含在共享扩展项目中。

解决方案是将该文件从扩展项目中排除(通过从目标的 File Inspector 侧面窗口视图中取消选中该文件);因为我不喜欢切换到Legacy Build System(也对我有用)的选项。

答案 45 :(得分:1)

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

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

在那之后,我需要执行:

pod update

答案 46 :(得分:1)

在Xcode 10中,它也可以在以前的版本上使用

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

enter image description here

答案 47 :(得分:1)

就我而言,Build archive error vs Xcode10

  

-1:多个命令产生'/Users/kk/Library/Developer/Xcode/DerivedData/react_carday_app-hjahojxsbvmmiyaklrhhuqljdfwv/Build/Intermediates.noindex/ArchiveIntermediates/react_carday_app/IntermediateBuildFilesyo/a   1)目标'yoga'的命令输出为'/Users/kk/Library/Developer/Xcode/DerivedData/react_carday_app-hjahojxsbvmmiyaklrhhuqljdfwv/Build/Intermediates.noindex/ArchiveIntermediates/react_carday_app/IntermediateosedFilesPath。   2)目标'yoga'的命令输出为'/Users/kk/Library/Developer/Xcode/DerivedData/react_carday_app-hjahojxsbvmmiyaklrhhuqljdfwv/Build/Intermediates.noindex/ArchiveIntermediates/react_carday_app/IntermediateosedFileslib / p>

您的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

答案 48 :(得分:1)

在我的情况下,我有一个修改后的watch项目,其中的应用程序和扩展名都有一个info.plist文件(都用相同的名称命名),为解决这个问题,我为剩下的ios应用程序重命名了文件对于手表,它的名称为info.plistwatch_info.plist以此类推 之后,我修改了包装info.pilst下的“ project-> target-> build settings”,并相应地修改了plist文件名,为我解决了这个问题

请注意,我在其他地方看到了在项目/工作区设置下将构建系统从新版本更改为旧版本的功能,尽管它可以工作-我不建议这样做,因为这会导致其他问题。

答案 49 :(得分:1)

我的情况类似于Damo's one-一些产品两次添加到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即可解决问题。

答案 50 :(得分:1)

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

#use_frameworks!

注意:这是在XCode 10.1,pod版本1.8.4上完成的

答案 51 :(得分:1)

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

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

解决此问题的步骤:

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

带有图片的说明:

步骤1:

Select Scheme

第3步:

Select Edit Scheme

步骤4-6:

Remove Irrelevant Target and Save

答案 52 :(得分:0)

检查您支持的平台!

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

我们一经设置

AVAILABLE_PLATFORMS = iphoneos iphonesimulator

在我们的根xcconfig文件中,此问题已消除了所有子项目。

要检查您的配置

运行

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

查看输出是否已设置为期望的值。如果您是iOS应用,并且正在为tvOS进行构建,则需要更新配置。

答案 53 :(得分:0)

在我的情况下,我从另一个项目导入了文件,并在两个位置拥有相同的类。

我收到以下相关错误消息:enter image description here

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

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

之后是位置,并允许我消除问题。

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

  • Main.storyboard
  • Assets.xcassets
  • 您的项目使用的任何SpriteKit场景(.sks)

答案 54 :(得分:0)

我是 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)

我发现,在活动目标配置中,我在 Deployment Info 部分中设置了 iOS 12.3,并在项目级别 Deployment Target 选项卡中的 Info 中设置了 14.1

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

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

  • 我不允许将构建系统设置为旧版
  • info.plistCopy Bundle Resources 阶段不存在

答案 55 :(得分:0)

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

确保还要根据@Lirik的回答检查Product Module Name

答案 56 :(得分:0)

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

答案 57 :(得分:0)

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

答案 58 :(得分: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

答案 59 :(得分:0)

1- 删除所有应用程序的派生数据 2- 打开终端 3- 更新 Pod 什么都做了?

答案 60 :(得分:0)

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

答案 61 :(得分:0)

我有同一个文件的多个副本。只需保留一份副本,然后删除所有剩余的副本。清理构建,并按问题排序。

答案 62 :(得分:0)

在我的情况下(我正在使用迦太基),问题

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

是由于在 Build Phases 配置

中将框架导入到嵌入式框架运行迦太基脚本阶段而引起的

这两个阶段将框架复制到派生数据,因此Xcode会看到重复的文件并显示以下错误并显示警告:

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

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

答案 63 :(得分:0)

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

答案 64 :(得分:0)

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

答案 65 :(得分:0)

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

答案 66 :(得分:0)

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

答案 67 :(得分:0)

好吧,对于在这里找不到正确答案的任何人,因为这与info.plist无关...

我在开发不带CocoaPods或Carthage的macOS应用程序时遇到了这个问题,仅使用SPM软件包,将xcodeproj手动拖到工作场所。

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

解决方案是尝试分别编译所有主要依赖项(由于各个.build文件夹中不存在checkout文件夹而导致的失败,这很可能是由于将pkgs置于编辑模式({{1 }}。

您只需swift package edit YourPkg ...您的pkg,然后强制所有依赖项成功编译。之后,您必须确保主目标中的链接二进制文件没有重叠(我不确定这是否确实有必要,但以防万一)。

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

答案 68 :(得分:0)

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

此头文件的名称实际上由${SWIFT_MODULE_NAME}-Swift.h确定,其中SWIFT_MODULE_NAME使用PRODUCT_MODULE_NAME作为默认值。

此外,有一个在项目范围内的构建设置:SWIFT_OBJC_INTERFACE_HEADER_NAME“ Objective-C生成的接口头名称”,其默认值为${SWIFT_MODULE_NAME}-Swift.h。通过将此值更改为MyApp-Swift.h,我们聚合构建中的所有目标都可以共享相同的标头名称,并且可以从中更改PRODUCT_MODULE_NAME值。

答案 69 :(得分:0)

在我们的案例中,我们只是清理了“副本捆绑资源”中的所有碎片,只保留了最少的物品。

enter image description here

答案 70 :(得分:0)

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

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

  1. 选择目标。

  2. 转到Build Phases标签。

  3. 删除Output Files中列出的项目
  4. 如果代码编译成功,则编译该代码,然后不执行后续步骤。
  5. 如果代码无法成功编译,并且Xcode可能会给您与“找不到库”相关的错误。然后在Xcode在错误中提到的General的{​​{1}}标签中添加缺少的库。
  6. 继续在Linked Frameworks and Libraries中添加这些库(Xcode通过编译错误询问这些库),直到代码成功编译为止。

    希望这会有所帮助。

答案 71 :(得分:0)

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

答案 72 :(得分:0)

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

此问题是由某些 libRN ... a 文件引起的。我已通过从 Build Phases-> Link Binary with Libraries (构建阶段->链接二进制文件与库)中删除其中的一部分(例如libRNScreens.a和libRNGestureHandler.a)来解决此问题,因为它们已被另一个库引用。其他的必须替换为他们的Pod版本,例如libRNDeviceInfo.a:

enter image description here enter image description here

答案 73 :(得分:0)

如果您开发了私有(n[index] for n in que),并且已经通过cocoapod添加了它,

Podfile部分中删除它:

Embedded Binaries in test app

答案 74 :(得分:0)

就我而言,清理被剥夺的数据和构建设置(按此顺序),然​​后重新启动Xcode和Simulator会有所帮助。

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

答案 75 :(得分:0)

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

我先删除添加的GoogleService-Info.plist并解决了问题。

答案 76 :(得分:0)

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

enter image description here

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

enter image description here

答案 77 :(得分:0)

我的一个隐藏文件(.gitkeep)触发了多次生产错误 请仔细查看您的编译源,我相信此文件位于“编译源”中,但它显示为空行。它实际上并没有说出隐藏文件的名称,但是我删除了空白行并解决了该问题,因此我怀疑项目导航器没有显示隐藏文件。