# ── core 的消费者规则（随 AAR 分发给宿主 app）──────────────────────────
# ⚠️ 这个文件是运行时版本断言能否在 release 生效的**唯一保障**。
# 忘了它 → 断言在 debug 正常、在 release 静默失效，比没有断言更糟：
# 它给了虚假的安全感。（契约 0091 因此要求验收在 R8 开启的 release 下做。）

# androidx.startup 通过合并后的 manifest meta-data 里的**类名字符串**反查
# Initializer，R8 看不到这条引用 —— 不 keep 就会被当作不可达代码删掉/改名。
-keep class com.xdramas.sdk.core.startup.XdramasCoreInitializer { <init>(); }

# 版本常量：Kotlin/Java 的 const String 会被内联到调用点，正常情况下不依赖
# BuildConfig 类本身存活；但断言失败时的诊断信息要能读，保住类名与字段。
-keepclassmembers class com.xdramas.sdk.core.BuildConfig {
    public static final java.lang.String XDRAMAS_MODULE_ID;
    public static final java.lang.String XDRAMAS_MODULE_VERSION;
}

# 断言失败时抛的异常：保住类名，否则 crash 栈里只剩 a.b.c，
# 「列出实际加载的 module:version + 修法」的价值就没了。
-keep public class com.xdramas.sdk.core.XdramasModuleVersionMismatchException { *; }
-keepnames class com.xdramas.sdk.core.XdramasCore
