如何使用 Swift 包管理器确定 Swift 代码中的配置

How to determine configuration in Swift code using Swift Package Manager

我正在使用 Swift 包管理器创建一个应用程序,我需要知道构建项目的配置,即 DebugRelease。我试图避免使用 .xcodeproj 文件。请有人让我知道这是否可能。我将在下面粘贴一个简单的示例,但请知道除了下面的代码之外是否还有更好的处理配置的方法,请提交作为答案。

示例:

// main.swift

#if DEBUG
  print("Im in Debug!!")
#else
  print("Im in Release!!")
#endif

从 Swift 3.1 开始,包管理器不提供在 Package.swift 文件中自定义构建设置的选项(此功能是团队 roadmap for Swift 4 的一部分)。但是,您可以在调用 swift buildswift test.

时使用 -Xswiftc 标志将自定义构建设置传递给编译器

要在调试模式下设置 DEBUG 标志,请像这样调用 swift build

swift build --configuration debug -Xswiftc "-D" -Xswiftc "DEBUG"

对于发布版本,您将执行通常的操作:

swift build --configuration release

还有 -XlinkerXcc 分别将标志传递给链接器和 C 编译器。