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


当前回答

不幸的是,这些答案对我都没用……这就是我看到的错误:

“多个命令生成/Users/…/…/…/Frameworks/abcdef.framework”

那个命令取决于命令……:脚本阶段"" 那个命令取决于命令……:脚本阶段""

将这一行添加到Podfile并进行“Pod Install”是唯一有效的方法。

install! 'cocoapods', :disable_input_output_paths => true

我真的希望这能帮助到一些人。我花了好几个小时才修好它。

有时候我真希望Xcode能像IntelliJ / Android Studio一样高效:(

古德勒克!

其他回答

在我的情况下(我使用迦太基)的问题

error: Multiple commands produce 
1) Target *** has copy command from
2) That command depends on command in Target ***: script phase “Run Carthage Script” 

是由于在构建阶段配置中导入框架到嵌入式框架和运行迦太基脚本阶段造成的

这两个阶段复制框架到派生数据,所以Xcode看到重复的文件,打印这些错误并警告:

ignoring duplicated output file: (in target ***)

在从嵌入式框架阶段删除重复的框架之后,一切都正常工作了。

我的问题是在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下保持选中状态

如果你使用CocoaPods,你可能想要尝试分解pod并重新安装。这对我很管用。

赛事deintegrate

正在安装

在我的例子中,构建存档错误vs Xcode10

-1: Multiple commands produce '/Users/kk/Library/Developer/Xcode/DerivedData/react_carday_app-hjahojxsbvmmiyaklrhhuqljdfwv/Build/Intermediates.noindex/ArchiveIntermediates/react_carday_app/IntermediateBuildFilesPath/UninstalledProducts/iphoneos/libyoga.a': 1) Target 'yoga' has a command with output '/Users/kk/Library/Developer/Xcode/DerivedData/react_carday_app-hjahojxsbvmmiyaklrhhuqljdfwv/Build/Intermediates.noindex/ArchiveIntermediates/react_carday_app/IntermediateBuildFilesPath/UninstalledProducts/iphoneos/libyoga.a' 2) Target 'yoga' has a command with output '/Users/kk/Library/Developer/Xcode/DerivedData/react_carday_app-hjahojxsbvmmiyaklrhhuqljdfwv/Build/Intermediates.noindex/ArchiveIntermediates/react_carday_app/IntermediateBuildFilesPath/UninstalledProducts/iphoneos/libyoga.a'

在你的Podfile中应该有类似bellow的东西

post_install do |installer|
  installer.pods_project.targets.each do |target|
    if target.name == "React"
      target.remove_from_project
    end

    if target.name == "yoga"
      target.remove_from_project
    end
  end
end

然后运行pod install

在我的例子中,我为两个不同的静态库使用了相同的自定义公共头文件夹路径。一个是主应用程序,另一个是手表应用程序。改变了手表应用程序的路径,现在一切正常。