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中有一个错误。


当前回答

在我们的例子中,我们只是清理了“Copy Bundle Resources”中的任何碎片,只留下最小的项目。

其他回答

解决方案一: 打开目标➼构建阶段➼复制Bundle资源➼删除信息。请从那里开始。➼你必须从扩展中删除plist(如果有的话)。

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

1) pod deintegrate
2) pod install

解决方案3: 在Xcode中,进入文件➼项目/工作区设置。 ➼将构建系统更改为遗留构建系统。

检查您支持的平台!

我们花了几个月的时间来研究这个问题。我们发现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开发,你将需要更新你的配置。

有一些原因导致显示这个错误。

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

当你为你的项目选择一个与你在项目上使用的依赖项之一相同的名称时,这个错误可能会发生,例如,如果你通过pod或SPM使用它们,你就不能选择FirebaseAuth或GoogleSignIn作为项目名称。

要解决这个问题,你应该用下面的方法更改项目名称:

从左边栏的项目导航器中选择项目,从右边栏的文件检查器中更改项目名称->身份和类型->名称。

在你改变它之后,XCode会要求你改变所有相对目标,然后按下rename。

2 -重复的信息。复制Bundle资源部分的plist

当输入信息时,您可能会遇到此错误。plist被添加到复制Bundle资源不需要,选择项目形式项目导航->选择目标-> goto构建阶段选项卡->复制Bundle资源,如果你看到信息。点击这里,通过选择info删除它。请像下面的图片一样

3 - pod文件不能很好地工作

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

1 -删除Podfile.lock

2 -删除Pods目录

3 -删除派生数据和清除(你可以从XCode菜单中找到这个目录-> Preferences…->位置->派生数据,并通过单击地址右侧的箭头图标进入目录)

4 -退出Xcode

5 -使用[sudo] gem在mac终端上安装CocoaPods

6 -进入终端的工程目录,运行pod install

7 -打开工作区并构建

5-复制核心数据

当你在项目中使用Core data时,你可能会遇到这个问题

首先我解释coreData代码原类型:

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

类别/扩展:选择类别/扩展在托管对象子类中添加额外的方便方法或业务逻辑。

Manual/None:选择Manual/None来编辑托管对象子类中的属性,例如,修改访问修饰符,并添加额外的方便方法或业务逻辑。

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

解决我的问题的一个选择是将构建系统更改为遗留构建系统。请在Xcode 10+中遵循以下步骤。

在这里,我写了一篇关于这个问题及其解决方案的详细文章。Xcode错误:生成多个命令

(更新) 尝试检查项目->目标->(您的名称项目)->复制Bundle资源,并检查是否有一些与您的错误相关的重复文件名。

在发现重复的名称后,删除显示错误的一个路径。

上图显示,我已经删除了错误的一个。对不起,我没有截图错误的图片。如果再次遇到,将会更新。