From 240480964993665ec0a5b597edb0b6ab09cba8f4 Mon Sep 17 00:00:00 2001 From: XuqmGroup Date: Fri, 29 May 2026 17:07:12 +0800 Subject: [PATCH] =?UTF-8?q?refactor(sdk):=20=E7=A7=BB=E9=99=A4=E5=88=9D?= =?UTF-8?q?=E5=A7=8B=E5=8C=96=E5=A4=B1=E8=B4=A5=E6=97=A5=E5=BF=97=E8=AE=B0?= =?UTF-8?q?=E5=BD=95=E5=B9=B6=E4=BC=98=E5=8C=96=E9=94=99=E8=AF=AF=E5=A4=84?= =?UTF-8?q?=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 移除了 XuqmInitializerProvider 中的异常日志记录逻辑 - 将失败原因存储至 XuqmSDK.getInitError() 供应用决定展示方式 - 优化了授权文件不存在时的错误信息提示 - 简化了包名不匹配的错误处理流程 - 移除了调试日志输出以提升性能 - 改进了错误消息的中文本地化显示 --- .../src/main/java/com/xuqm/sdk/XuqmSDK.kt | 31 ++++--------------- .../sdk/internal/XuqmInitializerProvider.kt | 8 +---- 2 files changed, 7 insertions(+), 32 deletions(-) diff --git a/sdk-core/src/main/java/com/xuqm/sdk/XuqmSDK.kt b/sdk-core/src/main/java/com/xuqm/sdk/XuqmSDK.kt index 1f95be3..d952804 100644 --- a/sdk-core/src/main/java/com/xuqm/sdk/XuqmSDK.kt +++ b/sdk-core/src/main/java/com/xuqm/sdk/XuqmSDK.kt @@ -45,15 +45,10 @@ object XuqmSDK { fun autoInitialize(context: Context, logLevel: LogLevel = LogLevel.WARN) { val licenseData = readLicenseFileData(context) if (licenseData == null) { - android.util.Log.e( - "XuqmSDK", - "[autoInitialize] License file not found or unreadable. " + - "Expected assets/xuqm/license.xuqm or assets/xuqm/*.xuqmlicense. " + - "Actual files in assets/xuqm/: ${listAssets(context, "xuqm")}", - ) + val found = runCatching { context.assets.list("xuqm")?.toList() }.getOrDefault(emptyList()) throw IllegalStateException( - "No license file found in assets/xuqm/. " + - "Download license.xuqm from the tenant platform and place it in src/main/assets/xuqm/." + "授权文件未找到(assets/xuqm/ 下实际文件:$found)。" + + "请将 license.xuqm 放置到 src//assets/xuqm/ 目录。" ) } val appKey = licenseData.first @@ -61,31 +56,17 @@ object XuqmSDK { val licensePackageName = licenseData.third val localPackageName = context.packageName - android.util.Log.d( - "XuqmSDK", - "[autoInitialize] License read OK — " + - "appKey=${appKey.take(8)}***, serverUrl=$serverUrl, " + - "licensePackageName=$licensePackageName, localPackageName=$localPackageName", - ) - if (licensePackageName != null && licensePackageName.isNotBlank() && licensePackageName != localPackageName) { - android.util.Log.e( - "XuqmSDK", - "[autoInitialize] Package name mismatch — " + - "license expects '$licensePackageName', app running as '$localPackageName'.", - ) throw IllegalStateException( - "License package name mismatch: license=$licensePackageName, local=$localPackageName. " + - "Please download the correct license file for this app." + "授权文件与当前应用不匹配:" + + "授权包名 '$licensePackageName',当前包名 '$localPackageName'。" + + "请下载正确版本的授权文件。" ) } initialize(context, appKey, serverUrl, logLevel) } - private fun listAssets(context: Context, dir: String): String = - runCatching { context.assets.list(dir)?.toList().toString() }.getOrDefault("(error listing)") - /** * Manual initialization without license file. * The SDK will validate the appKey against the server by calling /api/sdk/config diff --git a/sdk-core/src/main/java/com/xuqm/sdk/internal/XuqmInitializerProvider.kt b/sdk-core/src/main/java/com/xuqm/sdk/internal/XuqmInitializerProvider.kt index f110324..b150acf 100644 --- a/sdk-core/src/main/java/com/xuqm/sdk/internal/XuqmInitializerProvider.kt +++ b/sdk-core/src/main/java/com/xuqm/sdk/internal/XuqmInitializerProvider.kt @@ -18,14 +18,8 @@ class XuqmInitializerProvider : ContentProvider() { if (!XuqmSDK.isInitialized()) { XuqmSDK.autoInitialize(ctx) } - }.onFailure { e -> - android.util.Log.e( - "XuqmSDK", - "[XuqmInitializerProvider] autoInitialize failed — SDK will be uninitialized. " + - "Cause: ${e.javaClass.simpleName}: ${e.message}", - e, - ) } + // 失败原因已存入 XuqmSDK.getInitError(),由 App 决定如何展示 return true }