Files
f7cloud_mobile/vendor/talk-android/app/consumer-rules.pro
b-dev-mobile 67cc851b15 Этап 0 п.1: release собираем и подписан (signingConfig из env + R8-правила)
- signingConfig.release читает F7_KEYSTORE_FILE/PASSWORD, F7_KEY_ALIAS/PASSWORD
  из env или -P; фолбэк на debug-подпись если не заданы. Схемы v2+v3.
- R8: app/proguard-rules.pro (kotlinx.serialization, Firebase, JS-мосты, Coil);
  vendor consumer-rules.pro через consumerProguardFiles (WebRTC/LoganSquare/Dagger/
  RxJava/Parceler/EventBus + dontwarn geogson/joda из missing_rules.txt).
- Проверено на инфре B (JDK 21 + Android SDK 36): assembleRelease BUILD SUCCESSFUL,
  подписанный APK 99 МБ (было ~130 debug), apksigner verify v2+v3 OK.
- Доки: docs/RELEASE-SIGNING.md, docs/AUDIT-2026-07-07.md.
2026-07-07 13:17:20 +00:00

84 lines
3.6 KiB
Prolog
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Consumer ProGuard/R8 rules для :vendor:talk-app (F7cloud).
# Эти правила ПРОПАГИРУЮТСЯ в R8 приложения :app (vendor собирается как library
# с minifyEnabled false, поэтому обычные proguardFiles на потребителя не влияют
# нужен именно consumerProguardFiles, см. app/build.gradle).
# Защищают зависимости vendor-форка Nextcloud Talk от переименования/удаления R8.
# --- WebRTC (JNI: нативный libjingle_peerconnection_so.so зовёт org.webrtc.* по имени) ---
-keep class org.webrtc.** { *; }
-dontwarn org.webrtc.**
# --- LoganSquare (converter Talk API: сгенерированные $$JsonObjectMapper через рефлексию) ---
-keep class com.bluelinelabs.logansquare.** { *; }
-keep @com.bluelinelabs.logansquare.annotation.JsonObject class * { *; }
-keep class **$$JsonObjectMapper { *; }
-keepnames class * extends com.bluelinelabs.logansquare.JsonMapper
-keepclassmembers class * {
@com.bluelinelabs.logansquare.annotation.JsonField *;
}
# --- Jackson core (используется LoganSquare) ---
-dontwarn com.fasterxml.jackson.**
-keep class com.fasterxml.jackson.** { *; }
# --- Модели Talk API (парсятся LoganSquare/Gson по именам полей) ---
-keep class ru.f7cloud.talk.models.** { *; }
# --- Gson (converter-gson + модели) ---
-keepattributes Signature,*Annotation*,EnclosingMethod,InnerClasses
-keep class com.google.gson.** { *; }
-dontwarn com.google.gson.**
-keepclassmembers,allowobfuscation class * {
@com.google.gson.annotations.SerializedName <fields>;
}
# --- Retrofit 2 ---
-keep,allowobfuscation,allowshrinking interface retrofit2.Call
-keep,allowobfuscation,allowshrinking class retrofit2.Response
-keepclasseswithmembers class * { @retrofit2.http.* <methods>; }
-dontwarn retrofit2.**
-dontwarn okio.**
-keepattributes RuntimeVisibleAnnotations,RuntimeVisibleParameterAnnotations
# --- Parceler (сгенерированные $$Parcelable) ---
-keep class **$$Parcelable { *; }
-keep interface org.parceler.Parcel
-keep @org.parceler.Parcel class * { *; }
-keepclassmembers class **$$Parcelable {
public static final ** CREATOR;
}
# --- EventBus (@Subscribe вызывается рефлексией) ---
-keepattributes *Annotation*
-keepclassmembers class * {
@org.greenrobot.eventbus.Subscribe <methods>;
}
-keep enum org.greenrobot.eventbus.ThreadMode { *; }
-keep class org.greenrobot.eventbus.android.** { *; }
# --- Dagger / autodagger2 ---
-dontwarn dagger.**
-dontwarn com.github.lukaspili.autodagger2.**
# --- RxJava2 (опциональные зависимости на этапе компиляции) ---
-dontwarn java.util.concurrent.Flow*
-dontwarn sun.misc.**
-dontwarn org.reactivestreams.**
# --- Conscrypt (опциональный security-provider) ---
-dontwarn org.conscrypt.**
-keep class org.conscrypt.** { *; }
# --- прочие опциональные/аннотационные зависимости, на которые ругается R8 ---
-dontwarn javax.annotation.**
-dontwarn org.bouncycastle.**
-dontwarn org.slf4j.**
-dontwarn okhttp3.internal.platform.**
# --- недостающие опциональные refs (из missing_rules.txt R8): geogsonстарая guava,
# joda-convert аннотации joda-time (maps-стек Talk). Классы отсутствуют в рантайме,
# код их не вызывает безопасно подавить. ---
-dontwarn com.google.common.base.Objects$ToStringHelper
-dontwarn org.joda.convert.FromString
-dontwarn org.joda.convert.ToString