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


当前回答

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

每个目标只能有一个文件名是有意义的,因此只要取消与主目标不相关的文件的目标成员框就可以解决这个问题。

其他回答

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

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

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

对我来说,问题在于将同一个文件包含在bundle资源中两次。不知道这是怎么发生的,但我删除了其中一个,它与新的构建系统编译良好。

对于没有找到正确答案的同学因为这和info。plist没有关系。

我在开发一个macOS应用程序时遇到了这个问题,没有CocoaPods或Carthage,只有SPM包,手动将xcodeprojects拖到workplace。

当我只使用一个依赖时(它从内部使用Swift-NIO),一切都没问题,但当我添加一个又一个带有重叠子deps的依赖时,我遇到了这个讨厌的问题。

解决方案是尝试分别编译所有主要的依赖项(这将失败,因为在各自的.build文件夹中不存在签出文件夹,这很可能是因为您将pkg置于编辑模式(swift包编辑YourPkg…)

您只需取消编辑pkgs,并强制所有依赖项成功编译。之后,你必须确保你的主目标内的链接二进制文件没有重叠(我不确定这是否真的有必要,但以防万一)。

之后,一切都应该工作得很好:)

如果你是通过Ditto命令创建同名的多个实例(而不是“复制文件”构建阶段)得到这个,你可能必须改变产品模块名称。

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

在我们的应用中,我们有一个观察目标和一些通知目标,所以我把Extension之类的东西放在模块名的末尾。

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

选择您的方案(左上角)->编辑方案…->构建(左标签)->取消“查找隐式依赖”

在此之后,您可能需要修复目标未显式导入的任何依赖项。