深色模式

參考

事件

SDK 以事件通知 App「預設 session 所釘的版本已經改變」,目前有兩種:新版發佈與撤回。

事件
iOS(ClientEvent)
Android(ClientEvent)
觸發條件
新版發佈
.releaseUpdated(from:to:)
ReleaseUpdated(from, to)
輪詢讀到的 current 比預設 session 新;已換好預設 session 後發出
撤回
.releaseRevoked(ReleaseId)
由 checkRevocation() 回傳被撤回的清單
已釘選或已快取的版本出現在 revoked,或請求收到 HTTP 410
  • from、to:舊、新 release id,格式 YYYY-MM-DD.N。
  • 版本比較:先比日期,再以數值比序號,所以 .10 新於 .9。格式不符的 id 一律視為不較新。
  • 不發事件的情況:還沒有預設 session、版本相同或較舊、新版已被撤回。
  • 你明確持有並傳入的 session 不會被自動替換。

訂閱與輪詢

項目
iOS
Android
事件來源
client.events(AsyncStream,只能有一個消費者)
client.events(SharedFlow<ClientEvent>)
輪詢啟停
SDK 依前景、背景自動啟停(setForeground)
startReleaseWatch(scope, interval) 回傳 Job,由 App 在 onStart、onStop 管理
間隔設定
LapidConfiguration.releaseCheckInterval(預設 60 秒)
LapidConfig.releaseCheckInterval(預設 60 秒)
舊名稱(deprecated)
revocationCheckInterval
startRevocationWatch(scope, intervalMs)

預設間隔在 2026-11-04 由 300 秒改為 60 秒。

對事件做 switch(Swift)或當運算式的 when(Kotlin)時,請保留 default 或 else。未來新增事件種類屬於相容變更,沒有保留的話會編譯失敗。

使用方式見 自動換版與事件。