2022-07-18 15:31:45 +08:00
|
|
|
# Add project specific ProGuard rules here.
|
|
|
|
# By default, the flags in this file are appended to flags specified
|
|
|
|
# in /Users/macpro/Library/Android/sdk/tools/proguard/proguard-android.txt
|
|
|
|
# You can edit the include path and order by changing the proguardFiles
|
|
|
|
# directive in build.gradle.
|
|
|
|
#
|
|
|
|
# For more details, see
|
|
|
|
# http://developer.android.com/guide/developing/tools/proguard.html
|
|
|
|
|
|
|
|
# Add any project specific keep options here:
|
|
|
|
|
|
|
|
# If your project uses WebView with JS, uncomment the following
|
|
|
|
# and specify the fully qualified class name to the JavaScript interface
|
|
|
|
# class:
|
2023-05-09 10:09:03 +08:00
|
|
|
-keepclassmembers class fqcn.of.javascript.interface.for.webview {
|
|
|
|
public *;
|
|
|
|
}
|
2022-07-18 15:31:45 +08:00
|
|
|
|
|
|
|
# Uncomment this to preserve the groupLast number information for
|
|
|
|
# debugging stack traces.
|
2023-05-09 10:09:03 +08:00
|
|
|
-keepattributes SourceFile,LineNumberTable
|
2022-07-18 15:31:45 +08:00
|
|
|
|
|
|
|
# If you keep the groupLast number information, uncomment this to
|
|
|
|
# hide the original source file name.
|
2023-05-09 10:09:03 +08:00
|
|
|
-renamesourcefileattribute SourceFile
|
|
|
|
|
|
|
|
-keep class com.yunbao.**{
|
|
|
|
public <methods>;
|
|
|
|
protected <methods>;
|
|
|
|
}
|
|
|
|
-keep class * implements android.os.Parcelable {
|
|
|
|
*;
|
|
|
|
}
|
|
|
|
-keep class * implements com.yunbao.common.bean.BaseModel {
|
|
|
|
*;
|
|
|
|
}-keep class com.yunbao.common.bean.* {
|
|
|
|
*;
|
|
|
|
}
|
|
|
|
|
|
|
|
-keep class com.yunbao.common.views.weight.VerticalViewPager$LayoutParams{
|
|
|
|
*;
|
|
|
|
}
|
|
|
|
-keep class android.**{
|
|
|
|
*;
|
|
|
|
}
|
|
|
|
#-keep class com.yunbao.common.activity.**{*;}
|
|
|
|
#-keep class com.yunbao.common.adapter.**{*;}
|
|
|
|
#-keep class com.yunbao.common.bean.**{*;}
|
|
|
|
#-keep class com.yunbao.common.custom.**{*;}
|
|
|
|
#-keep class * extends com.yunbao.common.activity.AbsActivity{
|
|
|
|
# public *;
|
|
|
|
# protected *;
|
|
|
|
#}
|
|
|
|
#-keep class * extends androidx.appcompat.app.AppCompatActivity{
|
|
|
|
# public *;
|
|
|
|
# protected *;
|
|
|
|
#}
|
|
|
|
-keep class **.R$* {
|
|
|
|
public static <fields>;
|
|
|
|
}
|
2023-05-08 13:29:24 +08:00
|
|
|
-keep class com.tencent.** { *; }
|
2022-07-18 15:31:45 +08:00
|
|
|
-keep class com.adjust.sdk.**{ *; }
|
|
|
|
-keep class com.google.android.gms.common.ConnectionResult {
|
|
|
|
int SUCCESS;
|
|
|
|
}
|
|
|
|
-keep class com.google.android.gms.ads.identifier.AdvertisingIdClient {
|
|
|
|
com.google.android.gms.ads.identifier.AdvertisingIdClient$Info getAdvertisingIdInfo(android.content.Context);
|
|
|
|
}
|
|
|
|
-keep class com.google.android.gms.ads.identifier.AdvertisingIdClient$Info {
|
|
|
|
java.lang.String getId();
|
|
|
|
boolean isLimitAdTrackingEnabled();
|
|
|
|
}
|
|
|
|
-keep public class com.android.installreferrer.**{ *; }
|
2022-08-10 23:20:15 +08:00
|
|
|
-keep class * implements android.os.Parcelable.**{*;}
|
|
|
|
-keep class * implements android.os.Serializable.**{*;}
|
|
|
|
-dontwarn javax.annotation.**
|
|
|
|
|
|
|
|
-dontwarn javax.inject.**
|
|
|
|
|
|
|
|
# OkHttp3
|
|
|
|
|
|
|
|
-dontwarn okhttp3.logging.**
|
|
|
|
|
|
|
|
-keep class okhttp3.internal.**{*;}
|
|
|
|
|
|
|
|
-dontwarn okio.**
|
2023-05-08 13:29:24 +08:00
|
|
|
#okhttp
|
|
|
|
-dontwarn okhttp3.**
|
|
|
|
-keep class okhttp3.**{*;}
|
|
|
|
|
|
|
|
#okio
|
|
|
|
-dontwarn okio.**
|
|
|
|
-keep class okio.**{*;}
|
2022-08-10 23:20:15 +08:00
|
|
|
|
|
|
|
# Retrofit
|
|
|
|
|
|
|
|
-dontwarn retrofit2.**
|
|
|
|
|
|
|
|
-keep class retrofit2.** { *; }
|
|
|
|
|
2023-05-08 13:29:24 +08:00
|
|
|
-keepattributes Signature-keepattributes,Exceptions
|
2022-08-10 23:20:15 +08:00
|
|
|
|
|
|
|
# RxJava RxAndroid
|
2023-05-08 13:29:24 +08:00
|
|
|
-dontwarn java.util.concurrent.Flow*
|
2022-08-10 23:20:15 +08:00
|
|
|
|
|
|
|
-dontwarn sun.misc.**
|
|
|
|
|
|
|
|
-keepclassmembers class rx.internal.util.unsafe.*ArrayQueue*Field* {
|
|
|
|
|
|
|
|
long producerIndex;
|
|
|
|
|
|
|
|
long consumerIndex;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
2023-05-08 13:29:24 +08:00
|
|
|
-keepclassmembers class rx.internal.util.unsafe.BaseLinkedQueueProducerNodeRef* {
|
2022-08-10 23:20:15 +08:00
|
|
|
|
2023-05-08 13:29:24 +08:00
|
|
|
rx.internal.util.atomic.LinkedQueueNode* producerNode;
|
2022-08-10 23:20:15 +08:00
|
|
|
|
|
|
|
}
|
|
|
|
|
2023-05-08 13:29:24 +08:00
|
|
|
-keepclassmembers class rx.internal.util.unsafe.BaseLinkedQueueConsumerNodeRef* {
|
2022-08-10 23:20:15 +08:00
|
|
|
|
2023-05-08 13:29:24 +08:00
|
|
|
rx.internal.util.atomic.LinkedQueueNode* consumerNode;
|
2022-08-10 23:20:15 +08:00
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
# Gson
|
|
|
|
|
|
|
|
-keep class com.google.gson.stream.** { *; }
|
2023-05-08 13:29:24 +08:00
|
|
|
##---------------Begin: proguard configuration for Gson ----------
|
|
|
|
# Gson uses generic type information stored in a class file when working with fields. Proguard
|
|
|
|
# removes such information by default, so configure it to keep all of it.
|
|
|
|
-keepattributes Signature
|
|
|
|
|
|
|
|
# For using GSON @Expose annotation
|
|
|
|
-keepattributes *Annotation*
|
|
|
|
|
|
|
|
# Gson specific classes
|
|
|
|
-dontwarn sun.misc.**
|
|
|
|
#-keep class com.google.gson.stream.** { *; }
|
|
|
|
|
|
|
|
# Application classes that will be serialized/deserialized over Gson
|
|
|
|
-keep class com.google.gson.examples.android.model.** { <fields>; }
|
|
|
|
|
|
|
|
# Prevent proguard from stripping interface information from TypeAdapter, TypeAdapterFactory,
|
|
|
|
# JsonSerializer, JsonDeserializer instances (so they can be used in @JsonAdapter)
|
|
|
|
-keep class * extends com.google.gson.TypeAdapter
|
|
|
|
-keep class * implements com.google.gson.TypeAdapterFactory
|
|
|
|
-keep class * implements com.google.gson.JsonSerializer
|
|
|
|
-keep class * implements com.google.gson.JsonDeserializer
|
|
|
|
|
|
|
|
# Prevent R8 from leaving Data object members always null
|
|
|
|
-keepclassmembers,allowobfuscation class * {
|
|
|
|
@com.google.gson.annotations.SerializedName <fields>;
|
|
|
|
}
|
|
|
|
|
|
|
|
# Retain generic signatures of TypeToken and its subclasses with R8 version 3.0 and higher.
|
|
|
|
-keep,allowobfuscation,allowshrinking class com.google.gson.reflect.TypeToken
|
|
|
|
-keep,allowobfuscation,allowshrinking class * extends com.google.gson.reflect.TypeToken
|
|
|
|
|
|
|
|
##---------------End: proguard configuration for Gson ----------
|
2022-08-10 23:20:15 +08:00
|
|
|
|
|
|
|
-keepattributes EnclosingMethod
|
2023-05-08 13:29:24 +08:00
|
|
|
#--------融云
|
|
|
|
-keepattributes Exceptions,InnerClasses
|
|
|
|
-keepattributes Signature
|
|
|
|
-keep class io.rong.** {*;}
|
|
|
|
-keep class cn.rongcloud.** {*;}
|
|
|
|
-keep class * implements io.rong.imlib.model.MessageContent {*;}
|
|
|
|
-dontwarn io.rong.push.**
|
|
|
|
-dontnote com.xiaomi.**
|
|
|
|
-dontnote com.google.android.gms.gcm.**
|
|
|
|
-dontnote io.rong.**
|
|
|
|
# 下方混淆使用了融云 IMKit 提供的 locationKit 位置插件时才需要配置,可参考高德官网的混淆方式:https://lbs.amap.com/api/android-sdk/guide/create-project/dev-attention
|
|
|
|
-keep class com.amap.api.maps.**{*;}
|
|
|
|
-keep class com.autonavi.**{*;}
|
|
|
|
-keep class com.amap.api.trace.**{*;}
|
|
|
|
-keep class com.amap.api.location.**{*;}
|
|
|
|
-keep class com.amap.api.fence.**{*;}
|
|
|
|
-keep class com.loc.**{*;}
|
|
|
|
-keep class com.autonavi.aps.amapapi.model.**{*;}
|
|
|
|
-keep class com.amap.api.services.**{*;}
|
|
|
|
-ignorewarnings
|
|
|
|
|
|
|
|
#--------科大讯飞
|
|
|
|
-keep class com.iflytek.**{*;}
|
|
|
|
-keepattributes Signature
|
|
|
|
#EvenBus
|
|
|
|
-keepattributes *Annotation*
|
|
|
|
-keepclassmembers class * {
|
|
|
|
@org.greenrobot.eventbus.Subscribe <methods>;
|
|
|
|
}
|
|
|
|
-keep enum org.greenrobot.eventbus.ThreadMode { *; }
|
|
|
|
|
|
|
|
# If using AsyncExecutord, keep required constructor of default event used.
|
|
|
|
# Adjust the class name if a custom failure event type is used.
|
|
|
|
-keepclassmembers class org.greenrobot.eventbus.util.ThrowableFailureEvent {
|
|
|
|
<init>(java.lang.Throwable);
|
|
|
|
}
|
|
|
|
|
|
|
|
# Accessed via reflection, avoid renaming or removal
|
|
|
|
-keep class org.greenrobot.eventbus.android.AndroidComponentsImpl*
|
|
|
|
|
|
|
|
#--------ARouter
|
|
|
|
-keep public class com.alibaba.android.arouter.routes.**{*;}
|
|
|
|
-keep public class com.alibaba.android.arouter.facade.**{*;}
|
|
|
|
-keep class * implements com.alibaba.android.arouter.facade.template.ISyringe{*;}
|
|
|
|
|
|
|
|
# If you use the byType method to obtain Service, add the following rules to protect the interface:
|
|
|
|
-keep interface * implements com.alibaba.android.arouter.facade.template.IProvider
|
|
|
|
|
|
|
|
# If single-type injection is used, that is, no interface is defined to implement IProvider, the following rules need to be added to protect the implementation
|
|
|
|
# -keep class * implements com.alibaba.android.arouter.facade.template.IProvider
|
|
|
|
|
|
|
|
#----retrofit2
|
|
|
|
#-keepattributes Signature, InnerClasses, EnclosingMethod
|
|
|
|
#-keepattributes RuntimeVisibleAnnotations, RuntimeVisibleParameterAnnotations
|
|
|
|
#-keepattributes AnnotationDefault
|
|
|
|
#-keepclassmembers,allowshrinking,allowobfuscation interface * {
|
|
|
|
# @retrofit2.http.* <methods>;
|
|
|
|
#}
|
|
|
|
#-dontwarn org.codehaus.mojo.animal_sniffer.IgnoreJRERequirement*
|
|
|
|
#-dontwarn javax.annotation.**
|
|
|
|
#-dontwarn kotlin.Unit
|
|
|
|
#-dontwarn retrofit2.KotlinExtensions*
|
|
|
|
#-dontwarn retrofit2.KotlinExtensions$*
|
|
|
|
#-if interface * { @retrofit2.http.* <methods>; }
|
|
|
|
#-keep,allowobfuscation interface <1>
|
|
|
|
#-if interface * { @retrofit2.http.* <methods>; }
|
|
|
|
#-keep,allowobfuscation interface * extends <1>
|
|
|
|
#-keep,allowobfuscation,allowshrinking class kotlin.coroutines.Continuation
|
|
|
|
#-if interface * { @retrofit2.http.* public *** *(...); }
|
|
|
|
#-keep,allowoptimization,allowshrinking,allowobfuscation class <3>
|
|
|
|
|
|
|
|
#-----glide
|
2023-05-09 10:09:03 +08:00
|
|
|
#-keep public class com.bumptech.glide.** {*;}
|
|
|
|
#-keep public class jp.co.cyberagent.** {*;}
|
|
|
|
#-dontwarn jp.co.cyberagent.android.gpuimage.**
|
|
|
|
#
|
|
|
|
#-printconfiguration tmp/full-r8-config.txt
|