feat(sdk-bugcollect): Gradle plugin 支持从 xuqm.config.json 读取配置

- 读取优先级:xuqm.config.json > XUQM_APP_KEY(gradle.properties)
- 默认 platformUrl 改为 https://dev.xuqinmin.com(SaaS 平台)
- 移除 51szyx.com 硬编码

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
这个提交包含在:
XuqmGroup 2026-06-16 19:02:39 +08:00
父节点 c8a482a5c0
当前提交 dff226ae71

查看文件

@ -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<Project> {
/** Read appKey/platformUrl from xuqm.config.json at project root (optional). */
private fun readConfigFile(rootDir: File): Pair<String?, String?> {
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<Project> {
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")