在调试应用的时候,我们会遇到一些功能或界面需要在测试的时候显示,但是上线后隐藏。比如说我的应用 Eye Monitor 会在用户工作一定时长后弹出一个全屏提醒,在测试时我需要一个按钮让我主动触发这个全屏提醒进行调试。
以前我会通过两种方式实现:
第一种是直接在代码里新增内容,并在上方用 //Test 标注,在上线前删掉。
第二种是将一些测试功能如按钮隐藏在看起来不可点击的区域,这样即使不小心上线了也不影响用户。
最近发现用 #if DEBUG 在很多情况下会更方便。在 #if DEBUG 和 #endif 括起来的区域内的代码,仅会在debug模式下运行,这样就完全不用担心忘记删除代码上线的情况了。
#if DEBUG
Button {
appDelegate.showRemindWindow()
} label: {
Text("showReminder")
}
#endif
我在 Eye Monitor 的代码中增加这段内容后,在 Xcode 编译时选择 debug 模式,就会出现下图右上方的”showReminder“按钮:
而当我将编译模式修改为 release 时,就又恢复正常:
完美!
本文首发于公众号「原住民的自修室」,记录一名产品经理的生活,随想和思考,欢迎订阅。