Guide de Build et Publication Android pour Becik¶
Ce guide explique comment créer et publier l'application Android Becik.
🚀 Prérequis¶
1. Installation d'Android Studio¶
Téléchargez et installez Android Studio qui inclut:
- Android SDK
- Android SDK Platform
- Android Virtual Device (émulateur)
2. Configuration des Variables d'Environnement¶
Ajoutez ces lignes à votre ~/.bashrc ou ~/.zshrc:
export ANDROID_HOME=$HOME/Android/Sdk
export PATH=$PATH:$ANDROID_HOME/emulator
export PATH=$PATH:$ANDROID_HOME/platform-tools
export PATH=$PATH:$ANDROID_HOME/cmdline-tools/latest/bin
Rechargez votre configuration: source ~/.bashrc ou source ~/.zshrc
3. Installation du JDK¶
Android nécessite Java Development Kit (JDK) 11 ou supérieur:
# Ubuntu/Debian
sudo apt install openjdk-17-jdk
# macOS
brew install openjdk@17
📱 Build de Développement¶
L'app est en mode remote-first: la WebView charge https://www.becik.app (voir server.url dans capacitor.config.ts).
Donc vous n'avez pas besoin de builder Next.js pour compiler l'app Android.
1. Synchroniser avec Android¶
pnpm cap sync android
2. Ouvrir dans Android Studio¶
pnpm android:open
Ou utilisez le raccourci:
pnpm android:run
4. Lancer l'application¶
- Dans Android Studio, sélectionnez un appareil (émulateur ou appareil physique)
- Cliquez sur le bouton "Run" (▶️)
📦 Build de Production (APK Debug)¶
Option 1: Via Android Studio¶
- Ouvrez le projet:
pnpm android:open - Menu: Build > Build Bundle(s) / APK(s) > Build APK(s)
- Le fichier APK sera dans:
android/app/build/outputs/apk/debug/
Option 2: Via ligne de commande¶
cd android
./gradlew assembleDebug
L'APK sera généré dans: android/app/build/outputs/apk/debug/app-debug.apk
🏪 Publication sur Google Play Store¶
1. Créer un Keystore pour la Signature¶
keytool -genkey -v -keystore becik-release-key.keystore -alias becik -keyalg RSA -keysize 2048 -validity 10000
Important: Conservez ce fichier et les mots de passe en sécurité!
2. Configurer la Signature¶
Créez le fichier android/key.properties:
storePassword=VOTRE_STORE_PASSWORD
keyPassword=VOTRE_KEY_PASSWORD
keyAlias=becik
storeFile=../becik-release-key.keystore
⚠️ Ne commitez jamais ce fichier!
3. Build Release (AAB)¶
cd android
./gradlew bundleRelease
Le fichier AAB sera dans: android/app/build/outputs/bundle/release/app-release.aab
4. Publication sur Play Store¶
- Créez un compte développeur sur Google Play Console
- Créez une nouvelle application
- Remplissez les informations requises:
- Description de l'app
- Captures d'écran
- Icônes
- Politique de confidentialité
- Contenu de l'app
- Uploadez le fichier
.aab - Soumettez pour review
5. Publication automatique (Gradle + Play Publisher)¶
Commande recommandée (génère un VERSION_CODE automatique):
pnpm android:publish
Notes:
- Le script lance :app:publishReleaseBundle dans android/.
- VERSION_CODE est généré avec l'epoch (secondes) si aucune valeur n'est fournie.
- Pour forcer un code précis: VERSION_CODE=123456 pnpm android:publish
6. Internal App Sharing (lien direct, sans liste testeurs)¶
Commande recommandée:
pnpm android:publish:ias
Notes:
- Construit un AAB release puis upload vers Internal App Sharing.
- Retourne un downloadUrl direct pour installer la build.
- Sauvegarde le dernier lien dans logs/android-internal-app-sharing-latest.json.
- Utilise PLAY_SERVICE_ACCOUNT_JSON (ou android/play-service-account.json).
🔧 Commandes Utiles¶
# Build complet + sync Android
pnpm android:build
# Ouvrir Android Studio
pnpm android:open
# Build et ouvrir en une commande
pnpm android:run
# Synchroniser les changements
pnpm cap sync android
# Copier les assets web
pnpm cap copy android
# Voir les logs
pnpm cap run android -l
# Publier sur Play (release + upload)
pnpm android:publish
📝 Configuration Importante¶
capacitor.config.ts¶
Configuration de l'app Android:
{
appId: 'com.becik.app',
appName: 'Becik',
webDir: 'web',
server: {
url: 'https://www.becik.app',
androidScheme: 'https'
}
}
🤖 CI (Option 2) — Release via GitHub Actions¶
Le workflow publish-android.yml produit un .aab signé et peut l'uploader sur Google Play.
Secrets GitHub requis (Settings → Secrets and variables → Actions):
KEYSTORE_BASE64(base64 du fichierbecik-release-key.keystore)KEYSTORE_PASSWORDKEY_PASSWORDPLAY_SERVICE_ACCOUNT_JSON(JSON du service account Play Console) requis pour l'upload automatique sur tag
Utilisation:
- Manuel: Actions → "Publish Android (Release AAB)" → choisir le
track. - Pour uploader sur Play: cocher
uploadToPlay(nécessitePLAY_SERVICE_ACCOUNT_JSON). - Tag: pousser un tag
vX.Y.Z(ex:v1.2.3) pour déclencher automatiquement un upload sur Google Play trackinternal.
Notes versioning:
versionCodeest pris depuisVERSION_CODE(CI:github.run_numberpar défaut).versionNameest pris depuisVERSION_NAME(CI: dérivé du tag sans lev).
🎨 Icônes et Splash Screen¶
Générer les icônes¶
Placez votre icône source (1024x1024) dans public/icon.png puis:
pnpm add -D @capacitor/assets
pnpm exec cap-assets generate --android
Personnaliser le Splash Screen¶
Éditez android/app/src/main/res/drawable/splash.png et les variantes dans les dossiers drawable-*
🐛 Débogage¶
Voir les logs Android¶
# Via Capacitor
pnpm cap run android -l
# Via adb
adb logcat | grep Becik
Inspecter l'app web¶
- Lancez l'app sur un appareil/émulateur
- Dans Chrome: chrome://inspect
- Sélectionnez votre appareil
- Cliquez sur "inspect"
🔄 Workflow Recommandé¶
- Développement: Utilisez
pnpm devpour le développement web - Test Mobile:
pnpm android:runpour tester sur Android - Build Release: Utilisez les commandes Gradle pour les releases
- Publication: Uploadez sur Play Console
📚 Ressources¶
- Documentation Capacitor
- Documentation Android Studio
- Guide de Publication Play Store
- Génération de Keystore
⚠️ Notes Importantes¶
- Keystore: Ne perdez jamais votre keystore et vos mots de passe. Conservez-les en lieu sûr.
- Version:
versionNamevient dupackage.json.versionCodeest calculé automatiquement et peut être forcé viaVERSION_CODE. - Permissions: Ajoutez les permissions nécessaires dans
android/app/src/main/AndroidManifest.xml - Tests: Testez toujours sur plusieurs appareils avant publication