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>
这个提交包含在:
父节点
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")
|
||||
|
||||
正在加载...
在新工单中引用
屏蔽一个用户