feat: configurer la signature release Android
Le build release lit androidApp/keystore.properties (gitigné) pour signer l'AAB ; sans ce fichier, il échoue volontairement. La keystore servira de clé d'upload Play : la section Publication du README documente la procédure et la nécessité de la sauvegarder.
This commit is contained in:
3 files changed
+42
No files matched your search
@@ -13,6 +13,8 @@ local.properties
|
|||||||
xcuserdata/
|
xcuserdata/
|
||||||
Pods/
|
Pods/
|
||||||
*.jks
|
*.jks
|
||||||
|
*.keystore
|
||||||
|
androidApp/keystore.properties
|
||||||
*.gpg
|
*.gpg
|
||||||
*yarn.lock
|
*yarn.lock
|
||||||
.superpowers/
|
.superpowers/
|
||||||
@@ -54,6 +54,22 @@ Prérequis manuels dans [Google Play Console](https://play.google.com/console) :
|
|||||||
(« 5 questions » … « 50 questions »).
|
(« 5 questions » … « 50 questions »).
|
||||||
4. Ajouter des testeurs Play Jeux Services pour valider la connexion en dev.
|
4. Ajouter des testeurs Play Jeux Services pour valider la connexion en dev.
|
||||||
|
|
||||||
|
## Publication Android (Play Store)
|
||||||
|
|
||||||
|
Générer l'App Bundle signé :
|
||||||
|
|
||||||
|
```bash
|
||||||
|
./gradlew :androidApp:bundleRelease # androidApp/build/outputs/bundle/release/androidApp-release.aab
|
||||||
|
```
|
||||||
|
|
||||||
|
La signature release lit `androidApp/keystore.properties` (gitigné) avec les clés
|
||||||
|
`storeFile`, `storePassword`, `keyAlias`, `keyPassword`. Sans ce fichier, le build
|
||||||
|
release échoue (volontairement) et seuls les builds debug restent possibles.
|
||||||
|
|
||||||
|
La keystore `androidApp/livrets-release.keystore` sert de clé d'upload Play :
|
||||||
|
**la sauvegarder** (avec `keystore.properties`), sinon plus de mises à jour possibles.
|
||||||
|
À chaque release : incrémenter `versionCode` dans `androidApp/build.gradle.kts`.
|
||||||
|
|
||||||
## Tests
|
## Tests
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
|
|||||||
@@ -1,10 +1,16 @@
|
|||||||
import org.jetbrains.kotlin.gradle.dsl.JvmTarget
|
import org.jetbrains.kotlin.gradle.dsl.JvmTarget
|
||||||
|
import java.util.Properties
|
||||||
|
|
||||||
plugins {
|
plugins {
|
||||||
alias(libs.plugins.compose.compiler)
|
alias(libs.plugins.compose.compiler)
|
||||||
alias(libs.plugins.android.application)
|
alias(libs.plugins.android.application)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
val keystoreProperties = Properties().apply {
|
||||||
|
val f = file("keystore.properties")
|
||||||
|
if (f.exists()) f.inputStream().use { load(it) }
|
||||||
|
}
|
||||||
|
|
||||||
android {
|
android {
|
||||||
namespace = "com.livrets.androidApp"
|
namespace = "com.livrets.androidApp"
|
||||||
compileSdk = 37
|
compileSdk = 37
|
||||||
@@ -18,6 +24,24 @@ android {
|
|||||||
versionName = "1.0.0"
|
versionName = "1.0.0"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
signingConfigs {
|
||||||
|
create("release") {
|
||||||
|
if (keystoreProperties.isNotEmpty()) {
|
||||||
|
storeFile = file(keystoreProperties["storeFile"] as String)
|
||||||
|
storePassword = keystoreProperties["storePassword"] as String
|
||||||
|
keyAlias = keystoreProperties["keyAlias"] as String
|
||||||
|
keyPassword = keystoreProperties["keyPassword"] as String
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
buildTypes {
|
||||||
|
release {
|
||||||
|
isMinifyEnabled = false
|
||||||
|
signingConfig = signingConfigs.getByName("release")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
compileOptions {
|
compileOptions {
|
||||||
sourceCompatibility = JavaVersion.VERSION_17
|
sourceCompatibility = JavaVersion.VERSION_17
|
||||||
targetCompatibility = JavaVersion.VERSION_17
|
targetCompatibility = JavaVersion.VERSION_17
|
||||||
|
|||||||
Reference in new issue
Block a user