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


当前回答

在开始之前,请注意我的项目使用Carthage作为依赖管理器。

这里没有一个现有的答案能解决我的问题。为我解决这个问题的方法如下。

First, I noticed that the build error pointed out one framework in particular. Next I filtered App Target > Build Phases for that framework. I noticed that that framework was present in both "Link Binary With Libraries" and "Embed Frameworks". Noting that none of the frameworks listed under "Embed Frameworks" were ones managed by Carthage I removed the framework in question from "Embed Frameworks". I then re-built my project and everything works fine including the functionality enabled by the framework in question.

其他回答

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

我的错误是:

重复的输出文件 ' /用户/ home /图书馆/开发/ Xcode / DerivedData / myAppName-fawptgabysjowicvpeqydjniuovo /构建/产品/ Debug-iphoneos / myAppName.app / GoogleMaps.bundle” on task: PhaseScriptExecution [CP]拷贝Pods资源 /用户/ home /图书馆/开发/ Xcode / DerivedData / myAppName-fawptgabysjowicvpeqydjniuovo /构建/ Intermediates.noindex / myAppName.build Debug-iphoneos / myAppName.build / Script-32CCC25BF727B592A1784900.sh

我关注的问题文件是GoogleMaps。bundle和该文件在[CP]拷贝Pods资源中的位置,以及它指定它是一个重复的输出文件的事实(我在上面用黑色突出显示它们),这是下面的第四步

首先创建项目的副本,并确保在该副本上执行以下步骤

在项目导航器中,我找到了蓝色的项目图标

2-我选择构建阶段

3-在Build Phases下,我选择[CP] Copy Pods Resources

4-在[CP]拷贝Pods资源下,我去了输出文件,在那里我找到了以GoogleMaps.bundle结束的文件。我选中它,然后按负号删除它。确保你选择了输出文件而不是输入文件

5-我做了一个干净的shift+cmmd+k,之后当我建立项目时,错误就消失了

奇怪的是,即使红色错误消失了,黄色警告仍然存在,但它是有效的:)

我有同样的问题,但与头文件。

在这种情况下,解决方案是将标题从“公共”部分移动到“项目”部分。

如果你的应用程序生成了与多个.app文件相关的错误,那么从“复制bundle资源”中删除。plist文件将不起作用。

如果该错误与.app文件有关,请执行以下步骤

Select the Target. Go to Build Phases tab. Remove the items listed in Output Files Compile the code if it compiles successfully then not follow the next steps. If code does not compile successfully and Xcode may give you an error related to "Library not found". Then add the missing library in General Tab in Linked Frameworks and Libraries that Xcode mentioned in the error. Keep adding these libraries (that Xcode ask through compile errors) in Linked Frameworks and Libraries until the code compiles successfully. Hope this helps.

我在plist上也有同样的问题。 结果我有两个副本,一个是空的,一个在我的本地化资源文件夹中。 去掉其中一个(空的)就解决了这个问题。

如果你检查你的错误,行1)和2)有不同的路径。在复制阶段,这个文件可能定义了两次。

检查你的目标属性,构建阶段,拷贝Bundle资源,并寻找一个重复的info.plist。找出不正确的路径并删除它。(您可能还想从文件系统中删除它。)