【问题标题】:Condition #if DEBUG else if PRODUCTION not working in Swift条件 #if DEBUG else if PRODUCTION 在 Swift 中不起作用
【发布时间】:2020-03-11 13:25:50
【问题描述】:

我正在尝试为我的应用程序使用不同的环境,但在执行此操作时遇到了问题。 不是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

添加更多图像以更清楚地了解方案和 Xcode 设置。

【问题讨论】:

标签: ios swift


【解决方案1】:

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

【讨论】:

    【解决方案2】:

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

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

    所以你要做的就是双击标志的一侧或按回车键并添加以下值,就像我附在下面的屏幕截图一样。

    【讨论】:

      【解决方案3】:

      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
      

      【讨论】:

      • 我的项目是用 Obj-C 编写的,并添加了 Swift。在我的例子中,DEBUG 标志不是自动创建的,必须手动添加。
      猜你喜欢
      • 2014-03-21
      • 2018-10-16
      • 2020-12-05
      • 1970-01-01
      • 1970-01-01
      • 2017-05-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多