我正在尝试使用xcodebuild
在工作区中构建多项目项目。当 XCode 构建工作空间时,它会自动将所有构建工件放在 DerivedData 的公共目录中,以便每个项目都可以访问它的依赖项。
如果我使用这个命令:
xcodebuild -workspace myWorkspace.xcworkspace -schema builtIt -configuration Release
一切正常,但工件放置在通常的派生数据目录中。然后我想出现在我可以从 CI 构建访问的特定目录中。所以我尝试了这个
xcodebuild -workspace myWorkspace.xcworkspace -schema builtIt -configuration Release SYMROOT=build/products OBJROOT=build/intermediates
但是 xcodebuild 因这句话而失败
Details: Failed to load dependencies output contents from ``/Users/d4rkf1br3/projects/dNodi/build/intermediates/dNodi.build/Debug-iphoneos/dNodi.build/StaticAnalyzer/normal/armv7/DNRootSelector.d''.
Error: Error Domain=NSCocoaErrorDomain Code=260 "The file “DNRootSelector.d” couldn’t be opened because there is no such file."
UserInfo=0x4012fea40 {NSFilePath=/Users/d4rkf1br3/projects/dNodi/build/intermediates/dNodi.build/Debug-iphoneos/dNodi.build/StaticAnalyzer/normal/armv7/DNRootSelector.d, NSUnderlyingError=0x4012fc240 "The operation couldn’t be completed. No such file or directory"}.
User info: {
NSFilePath = "/Users/d4rkf1br3/projects/dNodi/build/intermediates/dNodi.build/Debug-iphoneos/dNodi.build/StaticAnalyzer/normal/armv7/DNRootSelector.d";
NSUnderlyingError = "Error Domain=NSPOSIXErrorDomain Code=2 \"The operation couldn\U2019t be completed. No such file or directory\"";
}
问题似乎是 xcodebuild 不再为工作区中的所有项目使用中央目录,而是将工件存储在每个项目中。因此,它无法定位正在编译的代码与其他项目中生成的工件之间的依赖关系。
有谁知道在命令行上设置的正确参数?
Xcode 的 Build Setting Reference 已经两年没有更新了,所以我不知道是否有新的构建设置可以应用。