fix(sdk-update): awaitInitialization 同时等待远程平台配置完成

确保 bugCollectEnabled 等远程配置字段在 checkAppUpdate 执行前已生效,
避免 captureError 因 isReady()=false 静默丢弃异常。

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
这个提交包含在:
XuqmGroup 2026-06-17 13:30:19 +08:00
父节点 12bff04e0e
当前提交 a36097fcdb

查看文件

@ -213,16 +213,21 @@ object UpdateSDK {
} }
private suspend fun awaitInitialization() { private suspend fun awaitInitialization() {
if (XuqmSDK.isInitialized()) return if (!XuqmSDK.isInitialized()) {
Log.w("UpdateSDK", "XuqmSDK not yet initialized, waiting up to 15s...") Log.w("UpdateSDK", "XuqmSDK not yet initialized, waiting up to 15s...")
kotlinx.coroutines.withTimeoutOrNull(15_000L) { kotlinx.coroutines.withTimeoutOrNull(15_000L) {
while (!XuqmSDK.isInitialized()) { while (!XuqmSDK.isInitialized()) {
kotlinx.coroutines.delay(100) kotlinx.coroutines.delay(100)
}
} ?: run {
val msg = "XuqmSDK init timeout (15s). Check that config.xuqm is present and package name matches."
Log.e("UpdateSDK", msg)
throw IllegalStateException(msg)
} }
} ?: run { }
val msg = "XuqmSDK init timeout (15s). Check that config.xuqm is present and package name matches." // 等待远程平台配置拉取完成bugCollectEnabled 等字段在此之后才生效)
Log.e("UpdateSDK", msg) kotlinx.coroutines.withTimeoutOrNull(10_000L) {
throw IllegalStateException(msg) runCatching { XuqmSDK.awaitInitialization() }
} }
Log.d("UpdateSDK", "XuqmSDK initialized, proceeding with update check") Log.d("UpdateSDK", "XuqmSDK initialized, proceeding with update check")
} }