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'
在Xcode 9中运行代码正常,但在Xcode 10中有一个错误。
在创建框架时也会遇到此错误。
在你的框架项目中,如果你有应用目标,并且在部署信息部分为每个应用目标设置了不同的iOS版本,那么进行pod安装将为相同的pod创建一个带有iOS版本后缀的新目标。
您可以通过转到pods目标来检查这一点。如果你看到重复,那就是你的问题。Xcode get因此感到困惑,并抛出一个这样的错误。
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”
以下是你需要做的。
将所有目标的部署信息下的最小ios版本设置为相同。这将确保当你安装pod时,cocoapods不会根据多个ios版本创建同一个pod的新目标。
关闭你的工作空间。删除xcworkspace, Podfile。锁和Pods文件夹。
运行pod install。
现在,当您打开工作区时,您可以再次检查pod目标。你会发现没有重复。
现在只需更改所有目标的部署信息。
检查您支持的平台!
我们花了几个月的时间来研究这个问题。我们发现AVAILABLE_PLATFORMS被设置为“appletvos appletvsimulator iphoneos iphoneonesemulator macosx watchos watchsimulator”,这将导致构建多个平台,这将导致“多个命令产生错误”。例如,“Foo”平台正在为iOS和TVOS构建,因此多个构建命令正在创建一个Foo.framework文件。
我们一出发就去
AVAILABLE_PLATFORMS = iphoneos iphonesimulator
在我们的根xcconfig文件中,这个问题在所有子项目中都消失了。
检查您的配置
Run
xcodebuild -project FitbitMobile.xcodeproj -target "FitbitMobile" -showBuildSettings > BuildSettings.txt
查看输出是否被设置为您所期望的值。如果你是一款iOS应用,并且你正在为tvOS开发,你将需要更新你的配置。
我是IOS开发的新手,我尝试了上面的答案,但它们对我不起作用。
我的XCode版本是12.4,Swift 5
我得到多个命令产生错误,而构建
我试图从错误列表中扩展错误,但双击它没有做什么,所以首先,我很难知道完整的错误。
所以我右键单击错误并复制到剪贴板,粘贴在文本编辑器中。
它显示了完整的错误
上面说哪部分有问题
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”
(我正在使用谷歌Firebase)
我很惊讶地看到,这些pod是为两个不同版本的iOS(12.3和14.1)编译的。
我发现,在活动目标配置中,我在部署信息部分设置了iOS 12.3,在项目级别信息选项卡的部署目标中设置了14.1
将两者设置为相同的所需版本,然后清理和构建解决了这个问题。
请让我知道设置2个不同的版本是否是一个错误。如果这不是一个错误,那么应该怎么做呢?
不允许我将构建系统设置为遗留系统
信息。plist在Copy Bundle Resources阶段不存在