XuqmGroup-AndroidSDK/sdk-bugcollect/src/main/java/com/xuqm/sdk/bugcollect/IssueEvent.kt
XuqmGroup 06f7b9d44d feat(bugcollect): 为每次打包生成独立 buildId,支持相同版本多包溯源
- Gradle 插件在配置阶段生成 yyyyMMddHHmmss 格式的 buildId,通过
  BuildConfig.XUQM_BUILD_ID 注入 APK,并作为 buildId 字段上传 sourcemap
- SDK 通过反射读取 BuildConfig.XUQM_BUILD_ID,在所有事件
  (captureError/captureCrash/warn) 的 IssueEvent 中携带 buildId
- LogUploader 序列化时将 buildId 写入上报 JSON
- IssueEvent 新增 buildId 可选字段

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-22 16:46:41 +08:00

50 行
1.4 KiB
Kotlin

package com.xuqm.sdk.bugcollect
data class IssueEvent(
val eventId: String = java.util.UUID.randomUUID().toString(),
val level: String,
val platform: String,
val fingerprint: String,
val appKey: String,
val timestamp: Long = System.currentTimeMillis(),
val exception: ExceptionInfo? = null,
val breadcrumbs: List<Breadcrumb> = emptyList(),
val release: String,
val buildId: String? = null,
val environment: String = "production",
val userId: String? = null,
val sessionId: String? = null,
val user: UserInfo? = null,
val device: DeviceInfo? = null,
val tags: Map<String, Any?> = emptyMap(),
) {
data class ExceptionInfo(
val type: String,
val value: String,
val stacktrace: String? = null,
)
data class UserInfo(
val id: String? = null,
)
data class DeviceInfo(
val name: String? = null,
val model: String? = null,
val manufacturer: String? = null,
val osName: String? = null,
val osVersion: String? = null,
val locale: String? = null,
val timezone: String? = null,
val network: String? = null,
val isEmulator: Boolean? = null,
val freeMemoryMb: Int? = null,
val buildType: String? = null,
)
data class SdkInfo(
val name: String,
val version: String,
)
}