راهاندازی Production و R8
R8 mapping نسخه minified را از محیط build به دیدبان برسانید.
بدون mapping، نام کلاس و متد در stack traceهای R8 شده مبهم است. Didban mapping را با application ID نهایی و versionCode همان build تطبیق میدهد.
Release build → R8 mapping.txt → Didban Gradle plugin → Didban backend → readable crash frames
۱. plugin را resolve و اعمال کنید
در settings.gradle.kts، مخزن عمومی دیدبان را در pluginManagement اضافه کنید:
pluginManagement {
repositories {
maven(url = "https://repo.didban.cloud")
google()
mavenCentral()
gradlePluginPortal()
}
}سپس در ماژول Android application (نه library) plugin را اعمال کنید:
plugins {
id("com.android.application")
id("dev.didban.gradle") version "0.1.0"
}۲. کلید Build را پیکربندی کنید
didban {
authToken.set(providers.gradleProperty("DIDBAN_BUILD_API_KEY"))
failBuildOnUploadError.set(true)
}در CI، DIDBAN_BUILD_API_KEY را از secrets به Gradle property بدهید. برای یک متغیر محیطی، providers.environmentVariable("DIDBAN_BUILD_API_KEY") نیز یک Provider سازگار است.
رفتار upload
- فقط variantهای application با minification فعال eligible هستند. variantهای unminified task mapping ندارند.
- AGP فایل OBFUSCATION_MAPPING_FILE (همان mapping.txt) را به task میدهد.
- assemble<Variant> و bundle<Variant> upload task را finalizer میکنند. نمونه: assembleRelease یا bundleRelease.
- میتوانید retry دستی کنید: ./gradlew uploadDidbanReleaseMapping
- autoUploadMapping بهطور پیشفرض true است. autoUploadNativeSymbols بهطور پیشفرض false است و برای native symbols opt-in است.
didban {
// Defaults shown explicitly only when you need to change them.
autoUploadMapping.set(true)
autoUploadNativeSymbols.set(false)
// baseUrl defaults to https://api.didban.cloud
}موفقیت mapping در خروجی Gradle با «Didban: uploaded R8 mapping for … versionCode=…» نمایش داده میشود.
مهم
بدون build key معتبر، task skip میشود و درخواست شبکهای نمیزند—حتی اگر failBuildOnUploadError=true باشد. با کلید معتبر، خطاهای فایل، شبکه، احراز هویت یا پاسخ غیر 2xx بهصورت warning ثبت میشوند؛ با failBuildOnUploadError=true build را fail میکنند.