使用 xcodebuild 构建依赖于通过 SPM 安装的 CocoaLumberjack 的应用程序

Building Apps using xcodebuild that depend on CocoaLumberjack installed via SPM

提问人:rogueserenity 提问时间:10/28/2021 更新时间:5/31/2022 访问量:245

问:

我正在尝试自动构建依赖于使用 Swift Package Manager (SPM) 安装的 CocoaLumberjack 的项目。该项目在 Xcode(12.5.1 和 13)中构建良好,但在终端中使用 .我收到一个错误,抱怨找不到。我创建了两个新项目,一个是 swift,一个是 objective-c 来复制这个问题。在这两种情况下,Xcode 都能很好地工作,但在命令行上失败了。xcodebuildmodule map

Objective-C 错误:

fatal error: module map file '/Users/XXX/Development/git/TestAppObjC/build/GeneratedModuleMaps/CocoaLumberjack.modulemap' not found

Swift 错误:

<unknown>:0: error: module map file '/Users/XXX/Development/git/TestAppSwift/build/GeneratedModuleMaps/CocoaLumberjackSwiftSupport.modulemap' not found
<unknown>:0: error: module map file '/Users/XXX/Development/git/TestAppSwift/build/GeneratedModuleMaps/CocoaLumberjack.modulemap' not found

我正在运行的确切命令:

xcodebuild clean build

示例项目:

Objective-C 测试应用程序

Swift 测试应用程序

Xcode cocoalumberjack

评论

0赞 markturnip 5/31/2022
运气@jragingfury吗?感觉这可能是由于 XcodeBuild 在错误的位置搜索构建的 SPM 模块。

答:

1赞 markturnip 5/31/2022 #1

传递到似乎可以解决该问题。derivedDataPathxcodebuild

您可以在 Xcode 偏好设置中找到“派生数据”路径。

就我而言:

xcodebuild -scheme TestAppSwift -derivedDataPath /Users/mt/Library/Developer/Xcode/DerivedData

成功构建:

note: Build preparation complete
note: Building targets in dependency order
** BUILD SUCCEEDED ** [0.132 sec]

enter image description here

评论

0赞 markturnip 5/31/2022
请注意,传递时需要:schemederivedDataPathxcodebuild: error: The flag -scheme, -testProductsPath, or -xctestrun is required when specifying -derivedDataPath.
0赞 markturnip 5/31/2022
另一种选择是通过clonedSourcePackagesDirPath