chore(-) : Update proguard for release

This commit is contained in:
Louis Legrand 2025-02-17 16:40:57 +01:00
parent ad08a4325f
commit 4276adaf22
10 changed files with 172 additions and 14 deletions

12
Jenkinsfile vendored
View File

@ -2,15 +2,15 @@ library "openiumpipeline"
openiumDroidJob modules: [ openiumDroidJob modules: [
"consentium": [ "consentium": [
testTasks: [], unitTestTasks: ["testDevDebugUnitTest"],
unitTestTasks: [],
], ],
"consentium-ui": [ "consentium-ui": [
testTasks: [], unitTestTasks: ["testDevDebugUnitTest"],
unitTestTasks: [],
], ],
"app": [ "app": [
testTasks: [], unitTestTasks: ["testDevDebugUnitTest"],
unitTestTasks: [], testTasks: ["pixel5DevDebugAndroidTest"],
publishApkVariants : ["devRelease", "demoRelease", "prodRelease"],
], ],
] ]
publishChannel: '#int-consentium'

View File

@ -1,6 +1,7 @@
import org.gradle.language.nativeplatform.internal.BuildType import org.gradle.language.nativeplatform.internal.BuildType
import java.io.FileInputStream import java.io.FileInputStream
import java.util.Properties import java.util.Properties
import com.android.build.api.dsl.ManagedVirtualDevice
plugins { plugins {
alias(libs.plugins.ksp) alias(libs.plugins.ksp)
@ -48,6 +49,7 @@ android {
buildTypes { buildTypes {
debug { debug {
isMinifyEnabled = false isMinifyEnabled = false
isShrinkResources = false
versionNameSuffix = "-debug" versionNameSuffix = "-debug"
applicationIdSuffix = ".debug" applicationIdSuffix = ".debug"
@ -91,6 +93,19 @@ android {
buildFeatures { buildFeatures {
compose = true compose = true
} }
testOptions {
animationsDisabled = true
managedDevices {
devices {
create<ManagedVirtualDevice>("pixel5") {
device = "Pixel 5"
apiLevel = 34
systemImageSource = "google"
}
}
}
}
} }
dependencies { dependencies {

View File

@ -19,12 +19,26 @@ android {
} }
buildTypes { buildTypes {
release { debug {
isMinifyEnabled = false isMinifyEnabled = false
proguardFiles( proguardFiles(
getDefaultProguardFile("proguard-android-optimize.txt"), getDefaultProguardFile("proguard-android-optimize.txt"),
"proguard-rules.pro" "proguard-rules.pro"
) )
consumerProguardFiles("proguard-rules.pro")
}
release {
isMinifyEnabled = true
proguardFiles(
getDefaultProguardFile("proguard-android-optimize.txt"),
"proguard-rules.pro"
)
consumerProguardFiles("proguard-rules.pro")
} }
} }

View File

@ -19,3 +19,55 @@
# If you keep the line number information, uncomment this to # If you keep the line number information, uncomment this to
# hide the original source file name. # hide the original source file name.
#-renamesourcefileattribute SourceFile #-renamesourcefileattribute SourceFile
-dontwarn fr.openium.consentium.data.di.ConsentiumUrl
-dontwarn fr.openium.consentium.data.di.OkHttpClientDefault
-dontwarn java.lang.invoke.StringConcatFactory
-keepattributes SourceFile,LineNumberTable
-keep public class * extends java.lang.Exception
-keep class com.google.firebase.crashlytics.** { *; }
-dontwarn com.google.firebase.crashlytics.**
# Keep enums
-keep public enum fr.openium.consentium.**{
*;
}
# Garder les annotations de Kotlin
-keepattributes *Annotation*
# Garder les classes et les membres annotés avec @Keep
-keep @androidx.annotation.Keep class * { *; }
-keepclassmembers class ** {
@androidx.annotation.Keep *;
}
# Garder les classes et les membres annotés avec @Serializable
-keep @kotlinx.serialization.Serializable class * { *; }
-keepclassmembers class ** {
@kotlinx.serialization.Serializable *;
}
# Garder les classes annotées avec @HiltAndroidApp
-keep @dagger.hilt.android.HiltAndroidApp class * { *; }
# Garder les classes et les membres pour Timber
-keep class timber.log.Timber { *; }
-keep interface timber.log.Timber$Tree { *; }
-keep public enum fr.openium.consentium_ui.ui.model.ConsentiumPageUI
-keepclassmembers enum fr.openium.consentium_ui.ui.model.ConsentiumPageUI {
<fields>;
}
-keep class fr.openium.consentium_ui.data.** { *; }
-keep class fr.openium.consentium_ui.domain.repository.** { *; }
-keep class fr.openium.consentium_ui.domain.usecase.** { *; }
-keep class fr.openium.consentium_ui.ui.** { *; }
-keepclassmembers class fr.openium.consentium_ui.data.** { *; }
-keepclassmembers class fr.openium.consentium_ui.domain.repository.** { *; }
-keepclassmembers class fr.openium.consentium_ui.domain.usecase.** { *; }
-keepclassmembers class fr.openium.consentium_ui.ui.** { *; }

View File

@ -20,11 +20,14 @@ android {
buildTypes { buildTypes {
debug { debug {
isMinifyEnabled = false isMinifyEnabled = false
proguardFiles(getDefaultProguardFile("proguard-android-optimize.txt"), "proguard-rules.pro")
consumerProguardFiles("proguard-rules.pro")
} }
release { release {
isMinifyEnabled = true isMinifyEnabled = true
proguardFiles(getDefaultProguardFile("proguard-android-optimize.txt"), "proguard-rules.pro") proguardFiles(getDefaultProguardFile("proguard-android-optimize.txt"), "proguard-rules.pro")
consumerProguardFiles("proguard-rules.pro")
} }
} }

View File

@ -19,3 +19,41 @@
# If you keep the line number information, uncomment this to # If you keep the line number information, uncomment this to
# hide the original source file name. # hide the original source file name.
#-renamesourcefileattribute SourceFile #-renamesourcefileattribute SourceFile
-dontwarn java.lang.invoke.StringConcatFactory
-keepattributes SourceFile,LineNumberTable
-keep public class * extends java.lang.Exception
-keep class com.google.firebase.crashlytics.** { *; }
-dontwarn com.google.firebase.crashlytics.**
# Keep enums
-keep public enum fr.openium.consentium.**{
*;
}
# Garder les annotations de Kotlin
-keepattributes *Annotation*
# Garder les classes et les membres annotés avec @Keep
-keep @androidx.annotation.Keep class * { *; }
-keepclassmembers class ** {
@androidx.annotation.Keep *;
}
# Garder les classes et les membres annotés avec @Serializable
-keep @kotlinx.serialization.Serializable class * { *; }
-keepclassmembers class ** {
@kotlinx.serialization.Serializable *;
}
# Garder les classes annotées avec @HiltAndroidApp
-keep @dagger.hilt.android.HiltAndroidApp class * { *; }
# Garder les classes et les membres pour Timber
-keep class timber.log.Timber { *; }
-keep interface timber.log.Timber$Tree { *; }
-keep class fr.openium.consentium.** { *; }
-keepclassmembers class fr.openium.consentium.** { *; }

View File

@ -0,0 +1,37 @@
package fr.openium.consentium
import android.content.Context
import dagger.Module
import dagger.Provides
import dagger.hilt.InstallIn
import dagger.hilt.android.qualifiers.ApplicationContext
import dagger.hilt.components.SingletonComponent
import fr.openium.consentium.data.di.ConsentiumUrl
import fr.openium.consentium.data.di.NetworkModule
import okhttp3.HttpUrl
import okhttp3.HttpUrl.Companion.toHttpUrl
import okhttp3.OkHttpClient
import okhttp3.logging.HttpLoggingInterceptor
import timber.log.Timber
@Module
@InstallIn(SingletonComponent::class)
class DevNetworkModule {
@Provides
fun provideOkHttpBuilder(
@ApplicationContext context: Context,
): OkHttpClient.Builder =
NetworkModule.standardOkHttpBuilder(context)
.addNetworkInterceptor(HttpLoggingInterceptor { message ->
Timber.tag("OkHttp")
Timber.v(message)
}.apply {
level = HttpLoggingInterceptor.Level.BODY
})
@ConsentiumUrl
@Provides
fun okHttpUrlConsentium(@ApplicationContext context: Context): HttpUrl =
"https://www.exemple.com".toHttpUrl()
}

View File

@ -16,7 +16,7 @@ import timber.log.Timber
@Module @Module
@InstallIn(SingletonComponent::class) @InstallIn(SingletonComponent::class)
class ConsentiumDebugNetworkModule { class DevNetworkModule {
@Provides @Provides
fun provideOkHttpBuilder( fun provideOkHttpBuilder(

View File

@ -43,7 +43,7 @@ junitExtVersion = "1.2.1"
preferencesDataStore = "1.1.1" preferencesDataStore = "1.1.1"
# Plugins # Plugins
agp = "8.7.3" agp = "8.8.1"
kotlin = "2.0.0" kotlin = "2.0.0"
ksp = "2.0.0-1.0.24" ksp = "2.0.0-1.0.24"
junitVersion = "1.2.1" junitVersion = "1.2.1"
@ -65,7 +65,6 @@ clarityVersion = "1.3.2"
# Coil # Coil
coil = "3.0.4" coil = "3.0.4"
# GA4 # GA4
ga4 = "22.1.2" ga4 = "22.1.2"
runtimeAndroid = "1.7.6" runtimeAndroid = "1.7.6"

View File

@ -1,6 +1,6 @@
#Mon Dec 09 14:35:54 CET 2024 #Mon Feb 17 11:35:23 CET 2025
distributionBase=GRADLE_USER_HOME distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-8.9-bin.zip distributionUrl=https\://services.gradle.org/distributions/gradle-8.10.2-bin.zip
zipStoreBase=GRADLE_USER_HOME zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists zipStorePath=wrapper/dists