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")