開關配置是一種在用戶端不用發布新版本的情況下,動態修改用戶端代碼中的處理邏輯的能力。用戶端根據拉取後台動態配置的開關值,來控制相關處理。通過開關佈建服務,您可以實現各種開關的配置、修改和推送。開關是指 key/value 的索引值對。
mPaaS 提供組態管理服務(ConfigService)來實現開關配置。預設的拉取邏輯為冷啟動時拉取一次,或從後台回前台時,若距離上一次拉取時間超過 半小時,也會觸發一次拉取。同時,組態管理服務也提供了立即拉取的介面以及對配置項改變的監聽邏輯,實現配置一旦改變就能立即重新整理。
要實現開關組態管理服務,需要添加相關的 iOS SDK,並配置工程、讀取配置。
使用開關配置涉及到調用 MDS 的更新發布介面,會產生相應的介面調用費用。有關介面調用的計費說明,參見 產品定價 中的即時發布計費項目說明 。
前置條件
您已接入工程到 mPaaS。更多資訊,請參見以下內容 基於已有工程且使用 CocoaPods 接入。
關於此任務
本文結合 開關配置程式碼範例,進行詳細的說明介紹。
添加 SDK
使用 cocoapods-mPaaS 外掛程式添加 SDK。
操作步驟如下:
在 Podfile 檔案中,使用
mPaaS_pod "mPaaS_Config"
添加開關配置組件依賴。參考 CocoaPods 使用指南,根據需要執行
pod install
或pod update
即可完成接入。
配置工程
該步驟適用於 10.1.32 版本。由於 10.1.60 及 10.1.68 版本中內建了工程配置,所以在 10.1.60 及 10.1.68 版本中可忽略此步驟。
mPaaS 將提供的開關配置能力封裝為一個 服務,使用前需要在服務管理員中註冊此服務,如下圖所示:
讀取配置
開關鍵對應的值可以通過 mPaaS 控制台動態發布。在左側導覽列中點擊 即時發布 > 組態管理 > 配置鍵 查看具體內容。
後續操作
擷取開關值
在 mPaaS 控制台 即時發布 > 組態管理 中增加需要的開關配置項,並按照平台、白名單、百分比、版本號碼、機型、iOS 版本等資訊進行針對性下發配置。具體操作步驟,參考 組態管理。
在控制台發布了開關鍵後,用戶端可通過調用介面擷取開關鍵對應的索引值。
+ (void)testStringForKey
{
id<APConfigService>configService = [DTContextGet() findServiceByName:@"APConfigService"];
NSString *configValue = [configService stringValueForKey:@"BillEntrance"];
assert (configValue && [configValue isKindOfClass:[NSString class]]);
}
開關索引值是通過 RPC 拉取返回的,存在一定的失敗幾率,因此開發人員在使用時要考慮到用戶端本地的處理邏輯以應對拉取失敗的情況。建議在用戶端本地邏輯中設定開關預設值,當控制台發布了新開關時採用新的配置邏輯,拉取失敗則採用本地預設邏輯。
進階指南
用戶端拉取開關配置的時機:
應用冷啟動時會拉取。
回前台時,若距上次請求配置超過 30 分鐘,會重新拉取。
說明30 分鐘為預設的時間間隔,可在控制台的 即時發布 > 配置開關管理 頁面中添加開關
Load_Config_Interval
修改此時間間隔。具體操作參見 組態管理。
動態監聽開關變化
可對指定的 key 添加觀察者,動態監聽開關值的變化。
當觸發用戶端拉取開關配置時,可在回調方法裡擷取指定 key 對應的最新開關值。
強制拉取開關值:SDK 提供強制拉取控制台最新配置的方法