Xcode: 只能将聚合目标存档一次

Xcode: Can only Archive an Aggregate Target Once

我在归档聚合目标时遇到问题。我的应用程序设置如下:

所有目标共享同一组核心文件:Launch Storyboard、AppDelegate、UIViewController 子类、Storyboard、Asset Catalog。他们都有独特的 info.plist 个文件。

添加聚合目标并构建它非常有效。我也可以第一次存档没问题。当 CopySwiftLibs 命令为 运行:

时,只有在我尝试第二个存档后才会出现错误
*** error: Couldn't copy/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/swift/iphoneos/libswiftCore.dylib
to
/Users/jal/Library/Developer/Xcode/DerivedData/MyApp-enstrypfbpojoqgbavkrccebdjsi/Build/Intermediates/ArchiveIntermediates/BuildAllEnterprise/BuildProductsPath/SwiftSupport/iphoneos/libswiftCore.dylib:
A file with the name “libswiftCore.dylib” already exists.

并不总是相同的dylib。有时是 libswiftDarwin.dylib,有时是 libswiftUIKit.dylib。我假设出现此问题是因为 Swift 库正在被聚合中的一个目标复制到派生数据文件夹,并且构建脚本正在尝试为我的聚合中的后续目标复制重复的库。

我在清理我的构建 folder/deleting 派生 Data/restarting Xcode 或我的 Mac 方面取得了不同程度的成功。但是即使我能把目标正确地归档一次,第二次总是失败。

如何在归档我的聚合目标时防止出现这种情况?

终于明白了。这些构建是 运行 并行的,在 CopySwiftLibs 阶段相互踩踏。在我的聚合目标方案的构建设置下取消选中 "Parallelize Build" 解决了这个问题。