From dff226ae71bda3a8c4ca24043869dea4d227ae89 Mon Sep 17 00:00:00 2001 From: XuqmGroup Date: Tue, 16 Jun 2026 19:02:39 +0800 Subject: [PATCH] =?UTF-8?q?feat(sdk-bugcollect):=20Gradle=20plugin=20?= =?UTF-8?q?=E6=94=AF=E6=8C=81=E4=BB=8E=20xuqm.config.json=20=E8=AF=BB?= =?UTF-8?q?=E5=8F=96=E9=85=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 读取优先级:xuqm.config.json > XUQM_APP_KEY(gradle.properties) - 默认 platformUrl 改为 https://dev.xuqinmin.com(SaaS 平台) - 移除 51szyx.com 硬编码 Co-Authored-By: Claude Sonnet 4.6 --- .../bugcollect/gradle/XuqmBugCollectPlugin.kt | 25 +++++++++++++++---- 1 file changed, 20 insertions(+), 5 deletions(-) diff --git a/sdk-bugcollect/src/main/java/com/xuqm/sdk/bugcollect/gradle/XuqmBugCollectPlugin.kt b/sdk-bugcollect/src/main/java/com/xuqm/sdk/bugcollect/gradle/XuqmBugCollectPlugin.kt index ff25a74..bcf5541 100644 --- a/sdk-bugcollect/src/main/java/com/xuqm/sdk/bugcollect/gradle/XuqmBugCollectPlugin.kt +++ b/sdk-bugcollect/src/main/java/com/xuqm/sdk/bugcollect/gradle/XuqmBugCollectPlugin.kt @@ -1,14 +1,26 @@ package com.xuqm.sdk.bugcollect.gradle -import com.android.build.api.variant.ApplicationVariant import com.android.build.gradle.AppExtension import org.gradle.api.Plugin import org.gradle.api.Project +import java.io.File class XuqmBugCollectPlugin : Plugin { + + /** Read appKey/platformUrl from xuqm.config.json at project root (optional). */ + private fun readConfigFile(rootDir: File): Pair { + val f = File(rootDir, "xuqm.config.json").takeIf { it.exists() } ?: return null to null + val text = runCatching { f.readText() }.getOrElse { return null to null } + val appKey = Regex(""""appKey"\s*:\s*"([^"]+)"""").find(text)?.groupValues?.get(1) + val platformUrl = Regex(""""platformUrl"\s*:\s*"([^"]+)"""").find(text)?.groupValues?.get(1) + return appKey to platformUrl + } + override fun apply(target: Project) { val android = target.extensions.findByType(AppExtension::class.java) ?: return + val (fileAppKey, filePlatformUrl) = readConfigFile(target.rootDir) + @Suppress("DEPRECATION") android.applicationVariants.all { variant -> if (!variant.buildType.isMinifyEnabled) return@all @@ -16,15 +28,18 @@ class XuqmBugCollectPlugin : Plugin { val taskName = "xuqmUploadMapping${variant.name.replaceFirstChar { it.uppercase() }}" val uploadTask = target.tasks.register(taskName, XuqmUploadMappingTask::class.java) { task -> task.group = "xuqm" - task.description = "Upload ProGuard mapping to XuqmLog service (${variant.name})" + task.description = "Upload ProGuard mapping to BugCollect service (${variant.name})" + // Priority: xuqm.config.json > gradle.properties XUQM_APP_KEY > gradle.properties xuqm.appKey task.appKey.set( - target.findProperty("XUQM_APP_KEY")?.toString() + fileAppKey + ?: target.findProperty("XUQM_APP_KEY")?.toString() ?: target.findProperty("xuqm.appKey")?.toString() ) task.platformUrl.set( - target.findProperty("XUQM_PLATFORM_URL")?.toString() - ?: "https://www.51szyx.com" + filePlatformUrl + ?: target.findProperty("XUQM_PLATFORM_URL")?.toString() + ?: "https://dev.xuqinmin.com" ) task.appVersion.set(variant.versionName) task.platform.set("android")