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/
|
||||
Pods/
|
||||
*.jks
|
||||
*.keystore
|
||||
androidApp/keystore.properties
|
||||
*.gpg
|
||||
*yarn.lock
|
||||
.superpowers/
|
||||
@@ -54,6 +54,22 @@ Prérequis manuels dans [Google Play Console](https://play.google.com/console) :
|
||||
(« 5 questions » … « 50 questions »).
|
||||
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
|
||||
|
||||
```bash
|
||||
|
||||
@@ -1,10 +1,16 @@
|
||||
import org.jetbrains.kotlin.gradle.dsl.JvmTarget
|
||||
import java.util.Properties
|
||||
|
||||
plugins {
|
||||
alias(libs.plugins.compose.compiler)
|
||||
alias(libs.plugins.android.application)
|
||||
}
|
||||
|
||||
val keystoreProperties = Properties().apply {
|
||||
val f = file("keystore.properties")
|
||||
if (f.exists()) f.inputStream().use { load(it) }
|
||||
}
|
||||
|
||||
android {
|
||||
namespace = "com.livrets.androidApp"
|
||||
compileSdk = 37
|
||||
@@ -18,6 +24,24 @@ android {
|
||||
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 {
|
||||
sourceCompatibility = JavaVersion.VERSION_17
|
||||
targetCompatibility = JavaVersion.VERSION_17
|
||||
|
||||
Reference in new issue
Block a user