feat(sdk-update): 服务未开通时返回 serviceActivated=false
- UpdateInfo: 新增 serviceActivated: Boolean = true 字段 - UpdateSDK.checkAppUpdate: 服务端返回 code=40404 时返回 UpdateInfo(serviceActivated=false) - UpdateInfoDto: 保持仅持有业务字段(无 serviceActivated),由 checkAppUpdate 根据响应 code 注入 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
这个提交包含在:
父节点
ba8fc74740
当前提交
5b21a7a52e
@ -184,7 +184,12 @@ object UpdateSDK {
|
|||||||
}
|
}
|
||||||
|
|
||||||
runCatching {
|
runCatching {
|
||||||
api.checkUpdate(XuqmSDK.appKey, "ANDROID", versionCode, userId).data?.toUpdateInfo()?.let { info ->
|
val response = api.checkUpdate(XuqmSDK.appKey, "ANDROID", versionCode, userId)
|
||||||
|
if (response.code == 40404) {
|
||||||
|
Log.w("UpdateSDK", "checkUpdate: 更新服务未开通 (code=40404) [appKey=${XuqmSDK.appKey}]")
|
||||||
|
return@withContext UpdateInfo(needsUpdate = false, serviceActivated = false)
|
||||||
|
}
|
||||||
|
response.data?.toUpdateInfo()?.let { info ->
|
||||||
val normalized = info.copy(downloadUrl = normalizeDownloadUrl(info.downloadUrl) ?: info.downloadUrl)
|
val normalized = info.copy(downloadUrl = normalizeDownloadUrl(info.downloadUrl) ?: info.downloadUrl)
|
||||||
val afterIgnore = if (!bypassIgnore && normalized.needsUpdate && !normalized.forceUpdate
|
val afterIgnore = if (!bypassIgnore && normalized.needsUpdate && !normalized.forceUpdate
|
||||||
&& isVersionIgnored(context, normalized.versionCode)
|
&& isVersionIgnored(context, normalized.versionCode)
|
||||||
|
|||||||
@ -15,4 +15,6 @@ data class UpdateInfo(
|
|||||||
val alreadyDownloaded: Boolean = false,
|
val alreadyDownloaded: Boolean = false,
|
||||||
/** APK 文件的 SHA-256 哈希值,用于校验本地文件完整性;服务端未返回时为 null */
|
/** APK 文件的 SHA-256 哈希值,用于校验本地文件完整性;服务端未返回时为 null */
|
||||||
val apkHash: String? = null,
|
val apkHash: String? = null,
|
||||||
|
/** 更新服务是否已开通;false 表示该 appKey 在平台上尚未配置任何版本,服务未开通 */
|
||||||
|
val serviceActivated: Boolean = true,
|
||||||
)
|
)
|
||||||
|
|||||||
正在加载...
在新工单中引用
屏蔽一个用户