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

时间:2016-04-07 17:16:07

标签: ios xcode xcodebuild

我无法存档聚合目标。我的应用程序设置如下:

  • MyApp.xcodeproj
    • App1的
    • App2的
    • App3的
    • APP4
    • App1的-企业
    • App2的-企业
    • App3的-企业
    • APP4-企业
    • BuildAllEnterprise(构建所有企业目标的聚合目标)

所有目标共享相同的核心文件集:启动Storyboard,AppDelegate,UIViewController子类,Storyboard,资产目录。它们都有唯一的info.plist文件。

xcode1

xcode2

添加聚合目标并将其构建完美。我也可以第一次存档没问题。只有在我尝试第二个存档后,才会在运行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.

xcode3

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

我在清理构建文件夹/删除派生数据/重新启动Xcode或我的Mac方面取得了不同程度的成功。但即使我能够将目标正确归档一次,它也会第二次失败。

如何在存档我的聚合目标时阻止这种情况?

1 个答案:

答案 0 :(得分:2)

终于弄明白了。构建版本并行运行,在CopySwiftLibs阶段相互踩踏。取消选中" Parallelize Build"在我的聚合目标方案的构建设置下修复了问题。

xcode