Xcode 10错误:产生多个命令


658

错误:多个命令产生了'/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中有错误。


对于的CocoaPods管理的依赖,是指stackoverflow.com/a/52421345/334999

当您将第三方框架导入到项目中并且源文件中包含info.plist时,就会发生这种情况。此info.plist与您的应用程序冲突。只需将其从构建阶段中删除
protspace '18

亲爱的读者,请仔细阅读此问题的所有答案,有很多不同的地方可能是错误的。
iluvcapra

转到路径“构建阶段->复制捆绑资源”。检查文件名并将其删除。清理并运行该应用程序
Sagar Sukode

Answers:


1222

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

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

enter image description here

注意:如果您还开发了手表应用程序,则还必须从手表中删除plist并扩展手表。


12
您可能还需要查看任何依赖项,例如CocoaPods,以查找错误添加的info.plist文件
Chris Paveglio

68
详细说明:发生此错误是因为Xcode 10的新构建系统更擅长解决项目配置问题。诸如此类的问题有时会在您的构建中引起一些细微的问题,因此最好将其修复。
瑞克·巴拉德

2
就我而言,我必须删除一些名为InfoPlist.strings的本地化文件
neowinston,

8
就我而言,我的info.plist一个私人CocoaPods依赖项中有一个文件,因为该文件与podspec的source_files属性匹配而被挖出。我不需要info.plist模块中的文件,因此我将其删除。
aapierce 18/09/17

3
谢谢!不久前,我在代码中添加了一些开发人员插件,并且其中还有一个info.plist文件,该文件与我的应用程序的info.plist相冲突
Christopher Smit

567

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

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

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

如果要使用新的构建系统,则可以从此Apple Xcode帮助页面找到故障排除帮助。

希望这可以帮助!


4
您能否解释为什么会出现此问题,以及如何选择旧版构建系统来解决此问题?@Akshay Sunderwani
user832 '18

142
您没有解决问题,只是将其隐藏。
Caio

4
修复了本机项目的构建错误。参见问题在这里:github.com/facebook/react-native/issues/20492有一个可能的修复,如果你不想切换到传统构建系统:github.com/facebook/react-native/issues/...
Eugen Timm '18

6
这不是长期解决方案。最终,遗留构建系统将不再是一个选择。
保罗·金

6
好吧,我100%会隐藏问题而不是解决问题,因为这些解决方案均无法解决。Cocoapods似乎是一个已知问题;参见github.com/CocoaPods/CocoaPods/issues/7949。我希望它在某种解决方法不再可用时能够以某种方式修复。
sudo

170

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

在此处输入图片说明

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

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

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


根据我的理解,我们现有的项目是使用旧的swift和xcode制作的,而受支持的旧版本的swift和xcode。因此,在我们之前所做的工作中,我们进行了“捆绑设置-> Swift旧版构建系统”,并选择了早期版本。
Hardik1344

我最初在“ Swift Legacy Build System”上安装了它,但是在重新启动计算机后将其切换了。即使您认为此设置正确无误,也仍然值得再次检查。
EndersJeesh

此解决方案无法解决问题,只是将其隐藏。
阿格斯

还要确保将“每用户”工作空间设置更改为相同的;)
申申


114

也尝试一下。Xcode-> File-> Project Settings-> Build System-> Legacy Build System。


38
在这种情况下,Xcode在项目中标记了一个问题,因此恢复到旧版构建系统将暂时将其隐藏。Xcode对此类问题的报告是有意为之的,最好解决此问题。
瑞克·巴拉德

2
如果错误出在CocoaPods的生成项目中,那么我将禁用新的构建系统,直到新的CocoaPods版本解决了该问题。
里维拉

@RickBallard现在有意义,哪一个是正确的解决方案?似乎有各种各样的答案
rolando

1
造成这种错误的原因多种多样
Rick Ballard,

73

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


1
它工作得还不错,但是后来与桥接文件中断了。
Mohamad Kaakati

5
就我而言,我必须All在搜索位置的右侧选择Product Module Name才能显示该构建配置。
霍德森

56
我在Xcode 10中遇到了同样的问题。同一项目在Xcode 9.4.1中正常工作。因此,解决方案非常简单。只需从目标中删除所有info.plist文件即可。请对所有info.plist文件执行此操作。步骤1。选择info.plist文件。2.在文件检查器中,取消选中“目标成员身份”中的项目。然后运行您的项目。谢谢 !
试剂盒

12
对我来说,我必须去[Project_Name]>构建阶段>复制捆绑资源并删除那里的重复项
user3322509

5
@Bharath不要从项目中删除info.plist文件。正如我所提到的,您只需要从Target中删除即可。我们无法删除info.plist,这对于项目非常重要。
的工具包

69

我正在试验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”。


36
xcdatamodeld文件实际上应位于“编译源”中。如果看到与核心数据有关的此错误,则可能是因为您调用了“创建NSManagedObject子类”,但您已将“实体”设置为Codegen =“类定义”。这意味着它将自动为您创建这些类,并且您手动创建了它们,因此它们存在两次。
William T.

1
您是
救生员

1
@WilliamT。因此,如果一个人正在调用Create NSManaged Object Subclass,那么Codegen的值应该是多少?
坎蒂亚'19

2
@Kaunteya在每个CoreData属性(表)上都有一个将Codegen设置为“ Manual”的选项
William

1
关注@WilliamT。建议,然后清理并建造。
PruitIgoe

40

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

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

32
info.plist文件不存在于副本捆绑资源中,仍然出现相同的错误
Bunty kumar

从副本捆绑包资源构建阶段中删除过多的Info.plist对我来说解决了它。但是,我的警告有所不同,因为意外地将另一个目标但在同一项目中的Info.plist添加到了“副本捆绑资源”构建阶段。警告为:“警告:任务:ProcessInfoPlistFile上的输出文件'... MyApp.app/Info.plist复制”。并导致与原始问题相同的错误:“错误:多个命令产生'... MyApp.app/Info.plist'”。
马丁·波拉克

在我的情况下,它是“授权”文件-删除该文件后,该问题已解决,因此我认为该问题比“ plist”更普遍,似乎更常遇到
我们

37

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

pod deintegrate

pod install


是的,我的问题是由Pod软件包引起的,只有这样才能解决问题!谢谢
CodeBrew

@Ming Chu谢谢
N. Der


27

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

简介:您可能同时具有自动生成的和手动生成的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

可以通过展开“ 编译记录”的“编译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'

提到的第一个文件在您的项目目录中有一个源文件,该文件是通过在“项目浏览器”中选择数据模型并单击菜单中的“ 编辑器” >“ 创建托管对象子类”来生成的。。此功能是在Xcode 7左右添加的。

第二个文件是同名文件,但被埋在Xcode的中DerivedData。如果数据模型()文件包含在目标的“ 编译源”构建阶段中,则此文件将在每次构建过程中由Xcode自动生成。此功能是在Xcode 9左右添加的。根据Codegen弹出窗口的设置,为每个实体/类生成零个,一个或两个文件。当您在编辑数据模型时选择一个实体时,该弹出窗口将显示在Data Model Inspector中.xcdatamodeld

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

设置为:

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

因此,您会看到问题,当习惯了较旧Xcode的开发人员(如我)开始在较新的Xcode中进行项目时。我们认为我们需要使用创建托管对象子类菜单项来创建我们可以在项目导航器中看到的文件,而又没有意识到我们在Codegen弹出窗口中的设置导致Xcode创建重复文件,Apple “聪明”不会显示在项目导航器中,因为他们不信任开发人员阅读并注意标题中的注释//此文件是自动生成的,不应进行编辑。

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

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

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

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

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

  • 将数据模型保留在“ 编译源”中
  • 在数据模型中的每个Entity Inspector中,将Codegen设置为Class Definition
  • 在项目浏览器中,删除并丢弃所有Foo + CoreDataClass文件,然后将任何Foo + CoreDataProperties.m.swift文件重命名为Foo + MyProperties之类的文件
  • 在每个Foo + MyProperties.m.swift文件中,如果存在Xcode生成的属性,请删除这些属性,因为它们将位于Codegen创建的隐藏文件中。

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

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

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

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

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


这对我有用。你真棒!
Srujan Simha

好答案。只需添加即可,在将Codegen固定为Manual / None(从此处的注释中提取)后,您可以使用“产品>清理构建文件夹”清除重复的隐藏文件。
毫无疑问,


19

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

在此处输入图片说明


18

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

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

Helper应用程序会自动以Xcode 10.0复制。

在此处输入图片说明


3
复制文件+复制捆绑资源删除帮助。
Oleksandr

这对我来说稍作修改-在我的情况下,复制文件步骤中有多个文件,以某种方式多次将相同的文件名多次复制到包中-导致错误:删除单行需要您突出显示该行/过滤错误中抱怨的名称,并用减号删除一行(该行始终在最底行),而不是删除整个复制文件步骤。
AztecWarrior_19年

16

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

我遵循的步骤是:

  1. 删除Podfile.lock
  2. 删除Pods目录
  3. 删除派生数据并清除
  4. 退出Xcode
  5. 将CocoaPods更新为1.5.3
  6. pod install
  7. 打开工作区并构建

5
将CocoaPods更新到1.5.3(sudo gem install cocoapods)并运行(pod安装)足以让它对我有用。谢谢!
mikemike396

我在上面做了一些建议,但这是唯一为我解决的建议。谢谢
Almeida

这个也为我解决了。我认为它比传统的构建解决方案更好,因为它实际上可以解决问题。
MateusK,

1
install! 'cocoapods', :disable_input_output_paths => true对我有用,但是我还必须在podfile的顶部添加。此外,如果您不想更新Pod,请不要删除podfile.lock,所有Pod都将安装为当前版本。
DidsData

11

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

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

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


1
我用过PODS。从嵌入框架中删除所有内容均有效。我清理并重建没有错误。旧式解决方案也可以使用,但不能解决当前的问题(对于任何阅读此书的人)。我正在使用xcode 10.2,cocoapods-1.6.1。
纳丁·罗斯

1
我正在使用迦太基,这对我来说已经解决了!
Devin B,

我还使用了CocoaPods。框架作为开发容器连接。“嵌入式框架”为空,但仍然出现此问题
Luten

11

尝试所有此选项,当然可以使用这3个选项中的任何一个

Option 1: Remove all files from

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

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

Option 2: Change the build system

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

Option 3: remove and update existing pod

Pod缓存清理PromisesObjC
Pod缓存清理PromisesSwift
cd [your_project_dir]
rm -rf Pods /
rm Podfile.lock
荚更新

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

11

脚步:

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

3
在这种情况下,Xcode在项目中标记了一个问题,因此恢复到旧版构建系统将暂时将其隐藏。Xcode对此类问题的报告是有意为之的,最好解决此问题。有关更多信息,请参阅help.apple.com/xcode/mac/10.0/#/dev14a2fd0c0
瑞克·巴拉德

这对我有用。更改产品名称不会。由于我的产品中混有一半的Objective-C代码和Swift代码。我的问题是“多个命令产生swiftmodule”
wzhang84 '18

9

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


这也正是我的解决方案,因为尝试在Xcode 10中运行tflite_camera_example时发生此错误
chang

9

在向应用程序添加SDK的Fabric套件的第二部分之后,这个问题对我产生了。

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

GoogleUtilities.framework的两个条目

这在Xcode 10之前是可以的,但是Xcode 10将抱怨文件是否有两个针对它的操作(在这种情况下为复制操作)。

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


对我来说也一样,但是使用迦太基将所有.frameworks拖到库部分项目中
Ronaldo Albertini

您是否已解决此@Damo
Harikarthick K,

我正面临这个问题,您能告诉我如何解决此问题而不更改旧版
吗?

9

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

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

在此处输入图片说明


如果(自定义)广告连播引起问题,此答案也应视为解决方案!
MkaysWork '18 -10-8

您也可以从此处删除任何* .plist文件。它似乎适用于自定义广告连播。
阿米特艾哈里

8

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

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


我有这个错误,因为我有一个监视目标,它具有自己的infoplist.strings文件,该文件已复制到与主应用程序的infoplist.strings文件相同的目录中。它们在构建时都将最终位于同一位置。
Lyck '18

7

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

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


7

我使用Carthage和Xcode 10。

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

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

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

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

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


7

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

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


是! 并执行“清理生成文件夹”。
德克

6

发生了类似的问题,但带有.swiftdoc文件。

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


6

移至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


2
在这种情况下,Xcode在项目中标记了一个问题,因此恢复到旧版构建系统将暂时将其隐藏。Xcode对此类问题的报告是有意为之的,最好解决此问题。有关更多信息,请参阅help.apple.com/xcode/mac/10.0/#/dev14a2fd0c0
瑞克·巴拉德

这是为我做的,先生,您真是个天才
samouray


6

我的一个CocoaPods不满意并引起了问题。豆荚是否进行了更新,并且工作正常。

我相信可能是LivePerson SDK


对我来说,我只需要做“吊舱安装”
Pnar Sbi Wer 18/12/10

6

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

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

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

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

这相冲突以什么中提到的Xcode的10构建系统发行说明 在这里

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

从Xcode 10.1更新到10.2后的新UPDATE

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

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

在此还要注意Target2的是,“Test


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

可以使用2种不同的解决方案来解决此问题:

解决方案1

如我们所见,我遇到了同样的错误。.在我的情况下,TildeskWidget文件夹中有一个文件夹Chat21Core的额外副本..这造成了问题。尝试查找是否有项目引用的其他副本。

解决方案2

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

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

希望这对您有用。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.