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


当前回答

我的问题是我创建的动作扩展和主要目标的产品模块名称重复。解决方案是更改扩展的产品模块名称(在Build Settings下)。

(11) XCode

其他回答

这个答案已弃用——XCode 12已经弃用了遗留构建系统,它将在进一步的版本中被移除

试试这个吧。 Xcode->File->Project Settings-> Build System -> Legacy Build System。

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

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

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

在我的例子中,我在运行TestTarget目标时遇到了这个问题。为了解决这个问题,我必须:

删除一个目标依赖项(在TestTarget >构建阶段>目标依赖项中)

因为除了我的TestTarget,我还有另外两个目标,它们都在运行相同的脚本,并在某个点上创建/复制文件。

这与Xcode 10 Build System Release Notes中提到的内容相冲突:

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

新的更新后,我更新Xcode 10.1到10.2

我更新到Xcode 10.2后又出现了类似的问题。我有多个目标在通过项目:Target1和Target2,我解决了这个问题:

导航到编辑方案>构建和 从构建的目标中移除一个:取消Test下Target1的复选框,因为我知道Target2导入了Target1

还要注意的是,Target2的复选框在Test下保持选中状态

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

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的副本,然后删除它。

这基本上意味着你有多个名为Info.plist的文件; 通常情况下没问题,但你的文件被设置为相同的目标会员。因此,修复方法是:单击每个文件并在右侧检查它们的目标成员,确保它们不重叠。