Skip to content

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

  1. Ouvrez le projet: pnpm android:open
  2. Menu: Build > Build Bundle(s) / APK(s) > Build APK(s)
  3. 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

  1. Créez un compte développeur sur Google Play Console
  2. Créez une nouvelle application
  3. Remplissez les informations requises:
  4. Description de l'app
  5. Captures d'écran
  6. Icônes
  7. Politique de confidentialité
  8. Contenu de l'app
  9. Uploadez le fichier .aab
  10. 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 fichier becik-release-key.keystore)
  • KEYSTORE_PASSWORD
  • KEY_PASSWORD
  • PLAY_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écessite PLAY_SERVICE_ACCOUNT_JSON).
  • Tag: pousser un tag vX.Y.Z (ex: v1.2.3) pour déclencher automatiquement un upload sur Google Play track internal.

Notes versioning:

  • versionCode est pris depuis VERSION_CODE (CI: github.run_number par défaut).
  • versionName est pris depuis VERSION_NAME (CI: dérivé du tag sans le v).

🎨 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

  1. Lancez l'app sur un appareil/émulateur
  2. Dans Chrome: chrome://inspect
  3. Sélectionnez votre appareil
  4. Cliquez sur "inspect"

🔄 Workflow Recommandé

  1. Développement: Utilisez pnpm dev pour le développement web
  2. Test Mobile: pnpm android:run pour tester sur Android
  3. Build Release: Utilisez les commandes Gradle pour les releases
  4. Publication: Uploadez sur Play Console

📚 Ressources

⚠️ Notes Importantes

  1. Keystore: Ne perdez jamais votre keystore et vos mots de passe. Conservez-les en lieu sûr.
  2. Version: versionName vient du package.json. versionCode est calculé automatiquement et peut être forcé via VERSION_CODE.
  3. Permissions: Ajoutez les permissions nécessaires dans android/app/src/main/AndroidManifest.xml
  4. Tests: Testez toujours sur plusieurs appareils avant publication