xcodebuild 解决依赖,但无法导入包

问题描述

我有一个简单的命令行应用程序,用 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 参数,则会调用该模式,但没有详细说明。

我想要一个更完整的答案,但现在,我要离开了。