Swift 环境变量在构建应用程序时返回 nil

Cha*_*ero 5 environment-variables swift tvos

描述

我有环境变量的问题。当我构建我的应用程序并且它正在运行时,一切正常,但是当我按“停止”或将它归档到应用程序商店时,环境变量返回 nil(或一个空字符串,我还不太确定)。

如何重现:

  1. 构建应用程序
  2. 在模拟器上运行(会出现“Hello world”)
  3. 停止应用
  4. 在模拟器中,返回应用程序(“Hello word”不会出现)

最小复制:

class ViewController: UIViewController {
    @IBOutlet weak var label: UILabel!

    override func viewDidLoad() {
        super.viewDidLoad()
        label.text = ProcessInfo.processInfo.environment["testVariable"]
    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
    }
}
Run Code Online (Sandbox Code Playgroud)

标签 Outlet 引用了一个简单的故事板

故事板截图

这是我的环境变量的配置

变量配置

最后,这里是 github 存储库上问题的最小重现 https://github.com/MasterBroki/test-environment-variable

感谢您的回答!

woo*_*ing 6

Xcode 将环境变量从方案传递到 iOS 运行时。当您在 Xcode 之外运行应用程序时,它们不会被传递。我也遇到了这个限制,你可以在这里找到一个类似的问题。

这种方法的替代方法是使用成对的配置(例如调试、发布或您为特定目的制作的配置)和“预处理器标志”或“其他 Swift 标志”。您可以在此处找到有关此方法的一些指导。