Xcode 10 - 多个命令生成 .app

6

我有一个在Xcode 9下开发的项目,切换到Xcode 10后,在构建期间出现错误:

错误:多个命令生成“SomePath/MyApp.app”:
  1)目标“MyApp”具有使用输出“/SomePath/Kvitt.app”的创建目录命令。
  2)该命令依赖于目标“MyApp”中的命令:脚本阶段“[CP] Copy Pods Resources”

我曾经遇到过使用不同的项目和Info.plist文件时出现类似问题,并使用 this answer 解决了它。

然而,这次错误是关于 MyApp.app 的,但在 Copy Bundle Resources 中没有该文件。

切换到 Legacy Build System 可以解决这个问题,但我想知道这是什么原因,并且如何在新的构建系统中修复它。

有任何想法吗?


请查看 https://help.apple.com/xcode/mac/current/#/dev621201fb0。 - Ashley Mills
请观看 https://developer.apple.com/videos/play/wwdc2018/415/。 - matt
1
你找到了任何不需要切换构建系统的解决方案吗? - veradiego31
@AshleyMills 您提供的资源描述了两个目标生成 .app 文件的情况。而在我的情况中,工作区仅包含一个单一目标,并且该工作区是由Cocoapods生成的。错误提到了一个Cocoapods脚本构建阶段,因此这似乎更像是Cocoapods的一个bug。 - mag_zbc
我尝试了很多方法,但只有https://dev59.com/pVUL5IYBdhLWcg3wM1g6#52451421对我有用。 - Almeida
3个回答

3

我遇到了相同的问题:在Xcode 10中构建错误“Multiple commands produce...”

:-1: Multiple commands produce '/Users/m/Library/Developer/Xcode/DerivedData/FAR- 
axuthwysrkuqbcdvfglntqgbiugn/Build/Products/Debug- 
iphonesimulator/F.A.R.app/.gitkeep':
1) Target 'FAR' (project 'FAR') has copy command from '/Users/m/Desktop/Shubham 
 Code/Backup/Shubham 2018/SVN 
Codes/FAR/FAR/FAR/ThirdParty/BPStatusBarAlert/Assets/.gitkeep' to 
'/Users/m/Library/Developer/Xcode/DerivedData/FAR- 
axuthwysrkuqbcdvfglntqgbiugn/Build/Products/Debug-iphonesimulator/F.A.R.app/.gitkeep'
2) Target 'FAR' (project 'FAR') has copy command from '/Users/m/Desktop/Shubham 
Code/Backup/Shubham 2018/SVN 
Codes/FAR/FAR/FAR/ThirdParty/BPStatusBarAlert/Classes/.gitkeep' to 
'/Users/m/Library/Developer/Xcode/DerivedData/FAR- 
axuthwysrkuqbcdvfglntqgbiugn/Build/Products/Debug-iphonesimulator/F.A.R.app/.gitkeep'

这可以通过以下步骤解决:
第1步:进入“构建阶段”。
第2步:复制捆绑资源并删除.gitkeep文件。
第3步:构建并成功。
在您的情况下,可能是其他文件出了问题,请检查文件名并将其删除。
根据我的调查,问题是由于文件重复造成的。
编码愉快。

我认为你的应用程序捆绑资源中不应该有.gitkeep文件。 - Alessio Crestani
1
谢谢...有时候我在寻找更复杂的原因时会忽略显而易见的事情。 - Hubert Kunnemeyer

2

我遇到了同样的问题。如果您正在使用Cocoapods,则可以按照此帖子中建议的升级到Cocoapods 1.5.3,从1.4.0解决该问题。

之后,在终端中执行pod install即可。


1

我通过取消集成CocoaPods,然后重新安装来解决了类似的问题。

我还清除了派生数据,在再次运行代码之前进行了清理。


如果您能提供命令,那将会非常有帮助。 - souradeep majumdar
首先,进入您的项目目录,然后执行以下命令: pod deintegrate pod install - Muhammad Essa

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接