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中会导致错误。
答案 0 :(得分:750)
由于App中有多个Plist或其他文件,可能会出现此问题 -
解决方案 - >打开目标 - >构建阶段>复制捆绑资源并从那里删除info.plist
。
注意:如果您也开发了手表应用程序,那么您也必须从手表和手表扩展程序中删除plist。
答案 1 :(得分:415)
我找到了解决此构建错误的方法,对于其他任何与Xcode 10构建系统存在相同问题的人,请按照以下步骤进行修复:
- 在Xcode中,转到“文件”->“项目/工作区设置”。
- 将构建系统更改为“旧版构建系统”。
如果要使用新的构建系统,则可以找到故障排除帮助from this apple Xcode help page。
希望这会有所帮助!
答案 2 :(得分:148)
转到Xcode->文件->工作区设置。 您会发现一个弹出窗口。
从“构建系统”标签中选择“ 旧版构建系统”。 按下“ 完成”
注意:-请确保使用“ cmd + shift + alt + k ”和“ 衍生数据”
构建您的项目,它将很有吸引力:)
答案 3 :(得分:92)
试试这个。 Xcode->文件 - >项目设置 - >构建系统 - >旧版构建系统。
答案 4 :(得分:55)
如果您通过Ditto
命令创建了多个相同名称的实例(而不是'copy files' build phase
)来获取此信息,则可能必须更改Product Module Name
。
Build Settings
Product Module Name
我们的应用程序中有一个监视目标和一些通知目标,因此我只将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)位于“编译源”列表中。从列表中删除该项目后,该项目进行了干净的编译。
答案 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')
所以,如果那是你的情况,那就去你的目标:
info.plist
。答案 7 :(得分:26)
尝试此方法:
在Xcode中,转到“文件”->“项目/工作区”设置。
将构建系统更改为旧版构建系统。
答案 8 :(得分:22)
如果您使用CocoaPods,则可能要尝试拆解Pod并重新安装。它对我有用。
pod deintegrate
pod install
答案 9 :(得分:16)
该答案已弃用-XCode 12已弃用旧版构建系统,它将在以后的版本中删除
我正在使用XCode 11.4 无法建立旧项目
Xcode =>文件=>项目设置=>构建系统=>旧版构建系统
答案 10 :(得分:15)
答案 11 :(得分:12)
我遇到了同样的问题,我在主应用程序中有一个帮助应用程序并将其复制到资源中。在我的情况下解决了: -
1)目标 - &gt; 2)构建阶段2)复制文件(n项)3)删除复制文件。
Helper应用程序自动复制到Xcode 10.0中。
答案 12 :(得分:11)
这里提出的所有解决方案都不适合我。这尤其是由于CocoaPods。我以前使用的是Cocoapods 1.3.1。仅仅升级到1.5.3并不能立即解决问题。
我遵循的步骤是:
pod install
答案 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)
步骤:
答案 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 弹出窗口的设置,为每个实体/类生成零个,一个或两个文件。当您在编辑数据模型时选择一个实体时,该弹出窗口位于数据模型检查器中。
设置为:
因此,您会看到当习惯了较旧Xcode的开发人员(如我)在较新的Xcode中开始项目时发生了问题。我们认为我们需要使用 Create Managed Object Subclass 菜单项来创建我们可以在Project Navigator中看到的文件,而又没有意识到我们在 Codegen < / em>弹出窗口会导致Xcode创建重复文件,Apple“巧妙地”不会在项目导航器中显示这些文件,因为它们不信任开发人员阅读并注意标头 //此文件是自动生成的,不应进行编辑。
您可以仅使用一种设置就禁用数据模型的所有自动 Codegen :
.xcdatamodeld
文件)。在这里,您将以全新的方式全力以赴。
使用此解决方案,您的类定义是根据每个构建中的数据模型自动生成的。您甚至看不到它们。它是 Core Data Magic ,对初学者来说很好用且简单。
但是,如果您真的要添加非托管属性,则解决方案2不好。 (Objective-C不允许将属性添加到类别中,而Swift不允许将存储的属性添加到扩展中。)因此,在大多数实际应用中,您可能希望在解决方案1和解决方案2之间过渡一半……>
(对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)
答案 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后再次出现类似问题。我在项目中有多个目标:Target1
和Target2
,我通过以下方法解决了这个问题:
Edit Scheme > Build
和Target1
下Test
的复选框,因为我知道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)
答案 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-在项目导航器中,我转到了蓝色项目图标
2-我选择了构建阶段
3-在“构建阶段”下,我选择[CP] Copy Pods Resources
4-在[CP] Copy Pods Resources
下,我转到Output Files
,在下面找到了以GoogleMaps.bundle
结尾的文件。我选择了它,然后按减号将其删除。确保您进入输出文件而不是输入文件
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”
将此行添加到 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)
答案 38 :(得分:2)
答案 39 :(得分:2)
删除该死的资产文件
解决方案->打开目标->构建阶段>复制捆绑资源并从其中删除资产。
答案 40 :(得分:2)
我和plist有同样的问题。 事实证明我有两个副本,一个是空的,一个在我的本地化资源文件夹中。 删除其中一个(空的)解决了这个问题。
如果检查错误,第1行和第2行的路径不同。您可能在复制阶段将此文件定义了两次。
检查目标属性,构建阶段,复制捆绑资源,并查找重复的info.plist。找出哪条路径不正确并将其删除。 (你可能也想从文件系统中删除它。)
答案 41 :(得分:2)
答案 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)
答案 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.plist
,watch_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:
第3步:
步骤4-6:
答案 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)
在我的情况下,我从另一个项目导入了文件,并在两个位置拥有相同的类。
当我复制错误时,结果发现了更多的文本信息,当我通过转储阅读时,我来到了相关的行:
:0:错误:文件名“EventNode.swift”使用了两次:
之后是位置,并允许我消除问题。
在此过程中,我发现了“复制捆绑资源”中需要的内容:
答案 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.plist
在 Copy 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)
答案 70 :(得分:0)
如果您的应用正在生成与多个.app
文件有关的错误,则从“复制捆绑资源”中删除.plist
文件。将不起作用。
如果错误与.app文件有关,请按照以下步骤操作
选择目标。
转到Build Phases
标签。
Output Files
中列出的项目General
的{{1}}标签中添加缺少的库。继续在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)
此问题是由某些 libRN ... a 文件引起的。我已通过从 Build Phases-> Link Binary with Libraries (构建阶段->链接二进制文件与库)中删除其中的一部分(例如libRNScreens.a和libRNGestureHandler.a)来解决此问题,因为它们已被另一个库引用。其他的必须替换为他们的Pod版本,例如libRNDeviceInfo.a:
答案 73 :(得分:0)
答案 74 :(得分:0)
就我而言,清理被剥夺的数据和构建设置(按此顺序),然后重新启动Xcode和Simulator会有所帮助。
我尝试执行解决方案->打开目标->构建阶段>复制捆绑资源,但是它再次出现在这里。清除被剥夺的数据有帮助。在错误中,它显示了重复项在我的情况下,它说它在我的应用程序捆绑包中和被删除的数据中。
答案 75 :(得分:0)
就我而言,我两次失望地向我的Firebase项目添加了GoogleService-Info.plist
文件。
我先删除添加的GoogleService-Info.plist
并解决了问题。
答案 76 :(得分:0)
答案 77 :(得分:0)
我的一个隐藏文件(.gitkeep)触发了多次生产错误 请仔细查看您的编译源,我相信此文件位于“编译源”中,但它显示为空行。它实际上并没有说出隐藏文件的名称,但是我删除了空白行并解决了该问题,因此我怀疑项目导航器没有显示隐藏文件。