如何判断 SwiftUI Previews 环境以条件运行相关代码

最近在写 macOS 产品,不知道从什么时候开始,在 Xcode 里进行 SwiftUI Previews 时会把 App 也跑起来,导致总是打断我写 SwiftUI 代码。从 Xcode 的视角就是,它执行 SwiftUI Previews 的过程中,把 AppDelegate 给完整地跑了一遍。

我去测试了之前用过 SwiftUI 的两个项目,发现也是这样。但是我新建的干净 Xcode 项目,无论是 AppDelegate 的 Life Cycle 模式还是 SwiftUI 的 Life Cyle,却没有这样的问题。

在我找到真实的原因之前,我用了一招 Workaround 解决了这个问题,那就是利用环境变量XCODE_RUNNING_FOR_PREVIEWS 来判断是不是 Xcode Previews 的环境,如果是,直接 return 掉。如下:

Xcode SwiftUI Previews Env.png

这样以后 App 再也不会运行了,也不会影响其他的调试。

欢迎使用图拉鼎和他的团队开发的作品

效率控 - 聚合众多实用小工具

装机必备的高颜值工具箱,拥有超过 18 款工具,完成日常各类任务。支持 iPhone、iPad 和 macOS。

No Comment

Leave a Comment