全部产品
云市场
云游戏

接入 iOS

更新时间:2020-07-31 13:21:49

重要:自 2020 年 6 月 28 日起,mPaaS 停止维护 10.1.32 基线。请使用 10.1.6810.1.60 系列基线。可以参考 mPaaS 10.1.68 升级指南mPaaS 10.1.60 升级指南 进行基线版本升级。

开关配置是一种在客户端不用发布新版本的情况下,动态修改客户端代码中的处理逻辑的能力。客户端根据拉取后台动态配置的开关值,来控制相关处理。通过开关配置服务,您可以实现各种开关的配置、修改和推送。开关是指 key/value 的键值对。

要实现开关配置管理服务,需要添加相关的 iOS SDK,并配置工程、读取配置。

前置条件

mPaaS 提供配置管理服务 (ConfigService) 来实现开关配置。默认的拉取逻辑为冷启动时拉取一次,或从后台回前台时,若距离上一次拉取时间超过 半小时,也会触发一次拉取。同时,配置管理服务也提供了立即拉取的接口以及对配置项改变的监听逻辑,实现配置一旦改变就能立即刷新。

要集成 mPaaS 提供的动态开关配置能力,需满足以下前置条件:

关于此任务

本文结合 开关配置代码示例,进行详细的说明介绍。

操作步骤

  1. 添加 SDK。使用 Xcode 插件添加开关配置 SDK 到工程中。

    SDK

  2. 配置工程(适用于 10.1.32 版本)。

    说明:由于 10.1.60 版本中内置了工程配置,所以在 10.1.60 版本中可忽略此步骤。
    mPaaS 将提供的开关配置能力封装为一个 服务,使用前需要在服务管理器中注册此服务,如下图所示:

    ddd

  3. 读取配置。开关键对应的值可以通过 mPaaS 控制台动态发布。在左侧导航栏中点击 实时发布 > 配置管理 > 配置键 查看具体内容。

后续操作

获取开关值

在 mPaaS 控制台 实时发布 > 配置管理 中增加需要的开关配置项,并按照平台、白名单、百分比、版本号、机型、iOS 版本等信息进行针对性下发配置。具体操作步骤,参考 配置管理

在控制台发布了开关键后,客户端可通过调用接口获取开关键对应的键值。

  1. + (void)testStringForKey
  2. {
  3. id<APConfigService>configService = [DTContextGet() findServiceByName:@"APConfigService"];
  4. NSString *configValue = [configService stringValueForKey:@"BillEntrance"];
  5. assert (configValue && [configValue isKindOfClass:[NSString class]]);
  6. }
说明:开关键值是通过 RPC 拉取返回的,存在一定的失败几率,因此开发者在使用时要考虑到客户端本地的处理逻辑以应对拉取失败的情况。建议在客户端本地逻辑中设置开关默认值,当控制台发布了新开关时采用新的配置逻辑,拉取失败则采用本地默认逻辑。

进阶指南

  • 客户端拉取开关配置的时机:
    • 应用冷启动时会拉取。
    • 回前台时,若距上次请求配置超过 30 分钟,会重新拉取。
      说明:30 分钟为默认的时间间隔,可在控制台的 实时发布 > 配置开关管理 页面中添加开关 Load_Config_Interval 修改此时间间隔。具体操作参见 配置管理

      添加配置
  • 动态监听开关变化
    • 可对指定的 key 添加观察者,动态监听开关值的变化。
      ss
    • 当触发客户端拉取开关配置时,可在回调方法里获取指定 key 对应的最新开关值。
      cc
  • 强制拉取开关值:SDK 提供强制拉取控制台最新配置的方法
    r