如何使用Swift Package Manager确定Swift代码中的配置

问题描述:

我使用Swift Package Manager创建了一个应用程序,我需要知道该项目的配置,例如DebugRelease。我试图远离使用.xcodeproj文件。请有人告诉我这是否可能。我将在下面粘贴一个简单的示例,但只知道是否有更好的方式来处理除下面的代码之外的配置,请提交作为答案。如何使用Swift Package Manager确定Swift代码中的配置

例子:

// main.swift 

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

所以当你说远离使用.xcodeproj你的意思是在构建设置中设置一个'DEBUG'变量? – boidkan

+0

@boidkan是的。究竟。 –

由于雨燕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编译器。