问题描述
我有一个简单的命令行应用程序,用 swift 5.3 编写,它使用 Apple 的 ArgumentParser 包。
它在 Xcode (12.4) 中构建和运行很好。但是,如果我运行 xcodebuild,如下所示:
xcodebuild -target mailfilter
它给出了这个错误:
/Users/hacksaw/Documents/src/mailfilter/mailfilter/main.swift:10:8: error: no such module 'ArgumentParser'
import ArgumentParser
^
相关项目信息:
% xcodebuild -list
Command line invocation:
/Applications/Xcode.app/Contents/Developer/usr/bin/xcodebuild -list
Resolve Package Graph
Resolved source packages:
swift-argument-parser: https://github.com/apple/swift-argument-parser @ 0.3.2
information about project "mailfilter":
Targets:
mailfilter
Build Configurations:
Debug
Release
If no build configuration is specified and -scheme is not passed then "Release" is used.
Schemes:
mailfilter
% xcodebuild -version
Xcode 12.4
Build version 12D4e
那么,我应该运行什么命令行才能正确构建它?
解决方法
所以(仍然不满意)答案确实是需要包含 -scheme
,所以这有效:
xcodebuild -scheme mailfilter -target mailfilter
我在某处读到的一篇文章谈到 xcodebuild 具有“传统”模式,如果您不包含 -scheme
参数,则会调用该模式,但没有详细说明。
我想要一个更完整的答案,但现在,我要离开了。