ChatGPT解决这个技术问题 Extra ChatGPT

Xcode 10 错误:产生多个命令

错误:多个命令产生'/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/ 的复制命令Library/Developer/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 与您的应用程序冲突。只需将其从构建阶段中删除
亲爱的读者,阅读这个问题的每一个答案,有很多不同的事情可能是错误的。
转到路径“构建阶段->复制捆绑资源”。检查文件名并将其删除。清理并运行应用程序
我同意@iluvcapra。继续阅读并尝试此线程中的不同解决方案。他们都工作!但仅适用于正确的情况。谢谢兄弟卡普拉的情人。在几天的时间里,你激励我坚持这个线程,最后,在尝试并消除了许多不同的可能性之后,我确实找到了解决方案,在这个线程中!,朝着它肯定会不断延伸的尾巴,奇迹般地。恕我直言:此错误消息:错误:多个命令产生 <文件名>,一般来说是 waaaaaay。苹果必须在某个时候粗暴地消除歧义?

A
Alok

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

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

https://i.stack.imgur.com/whT0P.png

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


您可能还需要查看任何依赖项,即 CocoaPods 以查找错误添加的 info.plist 文件
详细说明一下:发生此错误是因为 Xcode 10 的新构建系统更擅长捕捉项目配置问题。此类问题有时会导致您的构建出现细微问题,因此最好修复它们。
在我的例子中,我的一个私有 CocoaPods 依赖项中有一个 info.plist 文件,因为它与 podspec 的 source_files 属性匹配,所以该文件被收集起来。我不需要模块中的 info.plist 文件,因此我将其删除。
谢谢!前段时间我在我的代码中添加了一些开发人员插件,它还有一个与我的应用程序的 info.plist 冲突的 info.plist 文件
谢谢@Alok :) 我没有删除文件,而是用唯一的名称重命名了它们,并且我的代码运行良好。
s
shim

此答案已弃用 - Xcode 12 已弃用旧版构建系统,它将在后续版本中删除

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

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

https://i.stack.imgur.com/N9rIg.png

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


你能解释一下为什么会出现这个问题以及选择 Legacy Build System 是如何解决这个问题的吗? @Akshay Sunderwani
你没有解决问题,你只是隐藏它们。
修复了 react-native 项目的构建错误。请参阅此处的问题:github.com/facebook/react-native/issues/20492如果您不想切换到旧版构建系统,则有一个可能的解决方法:github.com/facebook/react-native/issues/…
这不是一个长期的解决方案。最终,遗留构建系统将不再是一种选择。
好吧,我 100% 会隐藏问题而不是修复它,因为这些解决方案都不起作用。似乎是 Cocoapods 的一个已知问题;见github.com/CocoaPods/CocoaPods/issues/7949。我希望当这种解决方法不再是一种选择时,它会以某种方式自行修复。
H
Hardik1344

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

https://i.stack.imgur.com/hdaJu.png

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

注意:- 确保使用“cmd+shift+alt+k”和“派生数据”清除您的项目

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


据我了解,我们现有的项目是用旧的 swift 和 xcode 制作的,它们支持旧版本的 swift 和 xcode。所以早些时候我们做了什么,我们继续“Bundle Settings->Swift legacy Build System”并选择了早期版本。
我最初将它放在“Swift Legacy Build System”上,但在重新启动计算机后它已被切换。即使您认为您的设置正确,仍然值得仔细检查。
此解决方案不解决问题,它只是隐藏它。
还要确保将每用户工作区设置更改为相同;)
从 Xcode 12 开始,旧版构建系统现已正式弃用:“旧版构建系统已弃用,将在未来的版本中删除。(62742902)”(developer.apple.com/documentation/xcode-release-notes/…)
c
christo8989

我正在尝试使用 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)在“编译源”列表中。当我从列表中删除该项目时,该项目编译得很干净。

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

编辑

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


xcdatamodeld 文件实际上应该在编译源中。如果您看到与 Core Data 相关的此错误,可能是因为您调用了“创建 NSManagedObject 子类”,但您的实体设置为 Codegen =“类定义”。这意味着它会自动为您创建这些类,并且您手动创建了它们,因此它们存在两次。
@WilliamT。那么,如果调用 Create NSManaged Object Subclass,Codegen 的价值应该是多少?
@Kaunteya 有一个选项可以在每个 CoreData 属性(表)上将 Codegen 设置为“手动”
关注@WilliamT。建议,然后清理和构建。
@WilliamT。对于那些尝试过 Core Data 的人来说是正确的(非常感谢!)。在 XCode 左侧的导航器区域中,找到并单击您的 .xcdatamodeld 文件 > 在 XCode 中间的编辑器区域中,选择您的实体 > 其属性将显示在最右侧 > 找到 Codegen 并将其值从“类定义”到“手动/无”。而已。
C
Chanchal Raj

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

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


在这种情况下,Xcode 会标记项目中的问题,因此恢复到旧版构建系统只会暂时隐藏它。 Xcode 报告这类问题是故意的,最好能解决问题。
如果错误出现在 CocoaPods 生成的项目中,那么我将禁用新的构建系统,直到新的 CocoaPods 版本解决了问题。
@RickBallard 是有道理的,现在,这可能是正确的解决方法?似乎有各种各样的答案
这种错误有多种原因,但您可以在 help.apple.com/xcode/mac/10.0/#/dev14a2fd0c0 阅读更多关于它的含义
从 Xcode 12 开始,旧版构建系统现已正式弃用:“旧版构建系统已弃用,将在未来的版本中删除。(62742902)”(developer.apple.com/documentation/xcode-release-notes/…)
u
u2Fan

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

单击您的目标 Xcode 抱怨单击构建设置搜索产品模块名称将名称更改为唯一的名称

我们的应用程序中有一个监视目标和一些通知目标,所以我只是将 Extension 之类的东西放在模块名称的末尾。

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


它工作得很好,但后来它破坏了桥接文件。
就我而言,我必须在搜索 Product Module Name 的位置右侧选择 All 以显示构建配置。
我在 Xcode 10 中遇到了同样的问题。同一个项目在 Xcode 9.4.1 中运行良好。所以解决方案非常简单。只需从目标中删除所有 info.plist 文件。请对所有 info.plist 文件执行此操作。步骤1。选择 info.plist 文件。 2. 在文件检查器中取消选中目标成员中的项目。然后运行你的项目。谢谢 !
对我来说,我必须去 [Project_Name] > Build Phases > Copy Bundle Resources 并删除那里的重复项
@Bharath 不要从您的项目中删除 info.plist 文件。正如我提到的,您只需要从 Target 中删除。我们不能删除 info.plist,它对项目非常重要。
M
Ming Chu

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

pod deintegrate

pod install


是的,我的问题是由 pod 包引起的,只有这样才能解决问题!谢谢
是的!这发生在我玩 Pods 并稍后通过 XCode 添加应用程序图标之后。希望这可以帮助
r
ricardopereira

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

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

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

构建阶段复制捆绑资源删除 info.plist。


复制包资源中不存在 info.plist 文件,仍然出现相同的错误
从复制捆绑资源构建阶段删除过多的 Info.plist 为我解决了这个问题。但是,我的警告是不同的,因为不小心将一个不同目标但在同一个项目中的 Info.plist 添加到了 Copy Bundle Resources 构建阶段。警告是:“警告:任务重复输出文件'... MyApp.app/Info.plist':ProcessInfoPlistFile”。并导致与原始问题相同的错误:“错误:多个命令产生'... MyApp.app/Info.plist'”。
在我的情况下,它是“许可证”文件 - 一旦我删除它,问题就解决了,所以我猜这个问题比“plist”更普遍,只是似乎更经常遇到
J
Jerry Krinock

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

概要:您可能同时拥有自动生成和手动生成的 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

可以通过展开 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 中。如果数据模型 (.xcdatamodeld) 文件包含在目标的Compile Sources 构建阶段,则此文件由 Xcode 在每次构建期间自动生成。这个特性是在 Xcode 9 左右添加的。为每个实体/类生成零个、一个或两个文件,具体取决于 Codegen 弹出窗口的设置。当您在编辑数据模型时选择实体时,该弹出窗口位于 Data Model Inspector 中……

https://i.stack.imgur.com/5xtPT.png

设置如下:

手动/无 不生成文件

类别/扩展 生成一个文件 Foo+CoreDataProperties.m 或 .swift,其中包含一个 Objective-C 类别或 Swift 扩展。

类定义 生成相同的类别/扩展文件,另外生成一个 Foo+CoreDataClass.m 或 .swift,包含类声明和定义。

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

解决方案 1 - 使用旧方法

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

打开问题目标的构建阶段(在项目导航器中,选择项目,然后在出现的目标列表中,选择问题目标,然后选项卡构建阶段)。

展开 Compile Sources 条目并找到问题数据模型(.xcdatamodeld 文件)。

从编译列表中删除它

确保数据模型包含在 Copy Bundle Resources 列表中。

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

在这里,您将全力以赴。

将您的数据模型保留在该编译源中。

在数据模型的每个实体检查器中,将 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 之间……

将您的数据模型留在编译源列表中

在数据模型的每个实体检查器中,将 Codegen 设置为 Category/Extension。

在 Project Navigator 中,删除并丢弃所有 Foo+CoreDataClass.m 或 .swift 文件,并且为了减少将来的混淆,将所有 Foo+CoreDataProperties.m 或 .swift 文件重命名为 Foo.m 或 .swift。

确保每个 Foo.m 或 .swift 文件都包含类定义,您可以在其中添加自己的非托管属性。

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


不错的答案。只是想添加您可以使用“产品>清除重复的隐藏文件”。从 here 的评论中将 Codegen 修复为 Manual/None 后清理构建文件夹。
P
Prakash Jat

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

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

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

https://i.stack.imgur.com/rOv6z.jpg


复制文件 + 复制捆绑资源删除有帮助。
这对我来说只需稍作修改 - 在我的情况下,复制文件步骤中有多个文件,以某种方式将相同的文件名多次/两次复制到包中 - 导致错误:删除单行需要您突出显示该行/filter 错误中抱怨的名称并通过减号删除一行(始终在底行),而不是删除整个复制文件步骤。
H
Haseeb Javed

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

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

1) pod deintegrate
2) pod install

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


我在我的 pod 文件中使用了不同版本的部署目标,所以我保持所有目标版本相同。并且 pod deintegrate 和 pod install 为我工作
就我而言,解决方案 2 有效。我已经添加了 info.plist 文件,因此它会自动添加到捆绑资源中。从 Copy Bundle Resources 中删除 info.plist 后,问题已解决。
“旧版构建系统”已被弃用,所以我使用解决方案 2,它运行良好......
解决方案 2、3 是合适的,对我来说效果很好,但解决方案 1 已被弃用并导致进一步的问题
我已经尝试过解决方案 2 和 3,它对我来说工作正常,解决方案 1 已弃用。对我来说,有很多重复的文件,所以也尝试了这个...构建阶段 --> 编译源。检查并删除错误文件的重复
A
Akash Patel

试试这个它的工作:

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

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


在这种情况下,Xcode 会标记项目中的问题,因此恢复到旧版构建系统只会暂时隐藏它。 Xcode 报告这类问题是故意的,最好能解决问题。有关详细信息,请参阅 help.apple.com/xcode/mac/10.0/#/dev14a2fd0c0
A
Asad Ali Choudhry

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

这里我写了一篇关于问题的详细文章&它的解决方案。 Xcode Error: Multiple commands produce

https://i.stack.imgur.com/3F4yl.jpg

https://i.stack.imgur.com/donV4.jpg


这个答案已经像我在使用 React Native 的 Xcode 中遇到的 12 个问题一样单独解决了。谢谢!
J
Justin

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

我遵循的步骤是:

删除 Podfile.lock 删除 Pods 目录 Delete Derived Data & Clean Exit Xcode 更新 CocoaPods 到 1.5.3 运行 pod install 打开工作区并构建


将 CocoaPods 更新到 1.5.3(sudo gem install cocoapods)并运行(pod install)就足以让它为我工作。谢谢!
我做了一些上面的推荐,但这是唯一为我解决的问题。谢谢
这个也为我解决了。我认为它比传统的构建解决方案更好,因为它实际上解决了这个问题。
这对我有用,但我还必须在我的 podfile 顶部添加 install! 'cocoapods', :disable_input_output_paths => true。此外,如果您不想更新您的 pod - 不要删除 podfile.lock,所有 pod 都将安装为其当前版本。
这是修复很多东西的一个很好的一般过程。很好的答案。
f
fullmoon

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

https://i.stack.imgur.com/t2a1M.png


s
shim

此答案已弃用 - Xcode 12 已弃用旧版构建系统,它将在后续版本中删除

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

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

https://i.stack.imgur.com/NtH2R.jpg

https://i.stack.imgur.com/iZEWE.png


D
Damo

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

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

https://i.stack.imgur.com/F2ogp.png

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

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


对我来说也是一样,但是使用 Carthage 将所有 .frameworks 拖到库部分项目
你修复了这个@Damo
我正面临这个问题,你能告诉我如何在不改变传统的情况下解决这个问题吗
p
palmi

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

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

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


我使用了 PODS。从嵌入框架中删除所有内容都有效。我清理并重建没有错误。遗留解决方案也有效,但不能解决手头的问题(对于任何阅读本文的人)。我在 xcode 10.2,cocoapods-1.6.1。
我正在使用迦太基,这为我修好了!
我还使用了 CocoaPods。框架作为开发吊舱连接。 “嵌入框架”是空的,仍然有这个问题
C
Charlie Fish

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

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


A
Austin

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


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

脚步:

转到 Xcode 文件 单击工作区设置 构建系统 选择作为旧版构建系统


在这种情况下,Xcode 会标记项目中的问题,因此恢复到旧版构建系统只会暂时隐藏它。 Xcode 报告这类问题是故意的,最好能解决问题。有关详细信息,请参阅 help.apple.com/xcode/mac/10.0/#/dev14a2fd0c0
这对我有用。更改产品名称不会。因为我的产品混合了一半的objective-c代码和swift代码。我的问题是“多个命令产生 swiftmodule”
有问题表明旧版构建系统已被废弃
G
Gajendra K Chauhan

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

从侧边栏中选择“Pods”作为屏幕截图中的亮点。

单击构建阶段。展开“标题”部分。有 3 个选项 Public、Private、Project

展开公共并检查是否有重复文件。去掉它。完毕!!

https://i.stack.imgur.com/L7FzS.png


如果(自定义)吊舱导致问题,这个答案也应该被视为一个解决方案!
您也可以从此处删除任何 *.plist 文件。它似乎适用于自定义 pod。
L
Lance Samaria

我的错误是:

在任务上重复输出文件'/Users/home/Library/Developer/Xcode/DerivedData/myAppName-fawptgabysjowicvpeqydjniuovo/Build/Products/Debug-iphoneos/myAppName.app/GoogleMaps.bundle':PhaseScriptExecution [CP] Copy Pods Resources /Users/主页/库/开发人员/Xcode/DerivedData/myAppName-fawptgabysjowicvpeqydjniuovo/Build/Intermediates.noindex/myAppName.build/Debug-iphoneos/myAppName.build/Script-32CCC25BF727B592A1784900.sh

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

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

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

https://i.stack.imgur.com/RfC7M.png

2-我选择构建阶段

https://i.stack.imgur.com/esmB6.png

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

https://i.stack.imgur.com/nieLw.png

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

https://i.stack.imgur.com/gBhOx.png

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

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


m
mohsen

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

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

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

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

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

https://i.stack.imgur.com/FLtvC.png

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

https://i.stack.imgur.com/ZtsDz.png

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

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

https://i.stack.imgur.com/DNKgZ.png

3 - pod 文件无法正常工作

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

1 - 删除 Podfile.lock

2 - 删除 Pod 目录

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

4 - 退出 Xcode

5 - 在 mac 终端上使用 [sudo] gem install cocoapods 更新 CocoaPods

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

7 - 打开工作区并构建

5-重复的核心数据

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

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

https://i.stack.imgur.com/x7DV8.png

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

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

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

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

https://i.stack.imgur.com/wkR32.png


W
Will Gwo

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

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


我有这个错误,因为我有一个监视目标,它有自己的 infoplist.strings 文件,该文件被复制到与主应用程序的 infoplist.strings 文件相同的目录中。它们在建造时都会在同一个地方结束。
S
Shoaib Bagwan

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

Option 1: Remove all files from

Target >> Build Phases >> Compile Sources Target >> Build Phases >> Copy Bundle Resources

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 :-)

-1。不,它“肯定”不起作用。删除编译源和复制包资源有什么意义?!如果不编译代码和资源,项目将无法工作。
M
Mario Bouchedid

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

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

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

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

install! 'cocoapods', :disable_input_output_paths => true

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

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

祝你好运!


请注意,这需要更新的 pod 安装 > 1.6 我猜基于这个ralfebert.de/ios/blog/cocoapods-clean-input-output-files
您可能想先做一个产品 -> 清洁构建文件夹。
天哪,马里奥!这对我有用!非常感谢您提供此解决方案。我的问题特别是 Google Analytics pod 造成了错误。我刚刚在我的 Podfile 顶部附近插入了这一行,突然我的项目就会建立起来。我的步骤是:1)将此行添加到 pod 文件 2)Pod deintegrate 3)Pod install 4)Product --> Clean Build Folder 5)构建代码库 6)尖叫哈利路亚,拥抱我的女朋友,弹出一个冷的,点亮一个脂肪和放松 7) :-D
@KeithTheBiped 乐于助人!!快乐编码:)
M
Muhammad Farooq

https://i.stack.imgur.com/AXu7c.png


A
Aurelia W

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

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


是的!并且还做一个“清理构建文件夹”。
A
Andrew Lee

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


关注公众号,不定期副业成功案例分享
关注公众号

不定期副业成功案例分享

领先一步获取最新的外包任务吗?

立即订阅