在生产模式下隐藏功能切换

hide feature toggle in production mode

我想在我们应用程序的设置包中创建一个功能切换。因此,如果我们 on/off 切换,我们可以 show/hide 当前正在开发的特定功能。但是,我还不想在生产设置上显示切换选项。下载应用程序的用户不需要看到此功能。那么,如果它处于生产模式,我该如何隐藏它?

#if DEBUG

中包装了 Toggle
#if DEBUG
Toggle(isOn: .constant(true), label: {
    Text("Label")
})
#endif

我建议转而使用支持 iOS 的功能标记工具,例如 LaunchDarkly 或 DevCycle。

这样您不仅可以控制某个功能在生产中是打开还是关闭,还可以控制哪些特定用户或用户组可以看到该功能。

您还可以将 Feature Flag 集成到您的后端,以便特定版本的应用程序的用户可以获得特定的 API 或数据集。

在此示例中,您将在应用程序中启用功能标志(使用 DevCycle)。文档位于:https://docs.devcycle.com/docs/sdk/client-side-sdks/ios

然后如果你想打开一个功能,比如管理屏幕上的一个选项,你可以这样包装代码:

let user = try DVCUser.builder()
.isAnonymous(true)
.appVersion("1.1.1")
.build()

guard let client = try DVCClient.builder()
.environmentKey("<DEVCYCLE_MOBILE_ENVIRONMENT_KEY>")
.user(user)
.build(onInitialized: nil)

let boolVariable: DVCVariable<Bool> = client.variable(key: "new-feature", defaultValue: false)

然后您可以为拥有 appVersion 1.1.1 的用户打开此功能标志,所有其他用户将关闭此功能标志。