条件 #if DEBUG else if PRODUCTION 在 Swift 中不起作用

use*_*635 6 ios swift

我正在尝试为我的应用程序使用不同的环境,但在这样做时遇到了问题。不是debug没有工作的情况是没有任何变量在工作。

我附上了一张截图,这将使您更容易理解正在发生的事情。

我无法访问任何环境。

我在viewDidLoad应用程序的初始视图控制器中运行了此代码,并else执行了最后一个条件。

#if DEBUG
    print("Environment is debug")
    #elseif debug
    print("Environment is debug")
    #elseif Debug
    print("Environment is Debug")
    #elseif RELEASE
    print("Release")
    #elseif PRODUCTION
    print("Environment is production")
    #elseif PROD
    print("Environment is PROD")
    #else
    print("Environment is can't find")
#endif
Run Code Online (Sandbox Code Playgroud)

io

添加更多图像以提高有关方案和 Xcode 设置的清晰度。

在此处输入图片说明

在此处输入图片说明

CZ5*_*Z54 11

DEBUG是新项目中唯一默认的 swift 标志。您可以在项目构建设置中创建自己的Other Swift Flags.

否则:

#if DEBUG
 // This code will be run while installing from Xcode
#else
// This code will be run from AppStore, Adhoc ... 
#endif
Run Code Online (Sandbox Code Playgroud)

  • 我的项目是用 Obj-C 编写的,并且添加了 Swift。就我而言,DEBUG 标志不会自动创建,必须手动添加。 (3认同)

mau*_*nde 11

在我的情况下,问题是通过添加DEBUGdebug Active Compilation Condition来解决的。我知道在您创建新项目时已经指定了它,但我不记得我或其他团队成员是否删除了它(以及为什么!)。所以我决定把它放在这里以防其他人面临同样的情况

活动编译条件中的调试规范


use*_*635 9

我做了研究并设置编译器标志解决了这个问题。

早些时候它们是空白的,Xcode UI 的方式让我很困惑如何编辑它们,它们看起来被禁用了。

因此,您需要做的是双击标志的一侧或按 Enter 键并添加以下值,因为我附上了下面的屏幕截图。

在此处输入图片说明