From 43b733b439716bdec154c04cc7e07223a7c309c5 Mon Sep 17 00:00:00 2001 From: syoul Date: Sun, 23 Nov 2025 10:41:28 +0100 Subject: [PATCH] =?UTF-8?q?Am=C3=A9lioration=20du=20script=20APK=20et=20aj?= =?UTF-8?q?out=20du=20guide=20complet?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Script build-apk-simple.sh mis à jour avec auto-installation Java 21 + Android SDK - GUIDE_APK.md créé avec documentation complète - Instructions pour distribution aux bêta-testeurs - APK prêt: dist/compagnon-lagon-beta.apk (4,5 MB) --- GUIDE_APK.md | 161 ++++++++++++++++++++++++++++++++++++ scripts/build-apk-simple.sh | 45 +++++++++- 2 files changed, 203 insertions(+), 3 deletions(-) create mode 100644 GUIDE_APK.md diff --git a/GUIDE_APK.md b/GUIDE_APK.md new file mode 100644 index 0000000..1fd64c2 --- /dev/null +++ b/GUIDE_APK.md @@ -0,0 +1,161 @@ +# 📱 Guide de génération de l'APK Android + +Ce guide explique comment générer l'APK de **Compagnon du Lagon** pour la distribution aux bêta-testeurs. + +## 🚀 Méthode rapide (Recommandée) + +### 1. Lancer le script automatisé + +```bash +cd "/home/syoul/Ccompagnon Marama" +./scripts/build-apk-simple.sh +``` + +Le script va : +- ✅ Installer automatiquement SDKMAN si nécessaire +- ✅ Installer Java 21 (requis par Capacitor) +- ✅ Installer Android SDK (cmdline-tools) +- ✅ Build Next.js en mode export statique +- ✅ Configurer Capacitor +- ✅ Générer l'APK Android + +**⏱️ Durée :** ~15-20 minutes la première fois (téléchargement SDK), puis 2-3 minutes pour les builds suivants. + +### 2. Récupérer l'APK + +L'APK sera disponible dans : +``` +dist/compagnon-lagon-beta.apk +``` + +**📊 Taille :** ~4,5 MB + +## 📤 Distribution aux bêta-testeurs + +### Option 1 : Envoi direct du fichier + +1. **Envoyer par email/messagerie** + - Envoyez le fichier `dist/compagnon-lagon-beta.apk` + - Via Email, WhatsApp, Telegram, etc. + +2. **Instructions pour les testeurs** + ``` + 1. Télécharger le fichier APK + 2. Ouvrir les Paramètres Android + 3. Sécurité > Activer "Sources inconnues" + 4. Ouvrir le fichier APK téléchargé + 5. Appuyer sur "Installer" + ``` + +### Option 2 : Hébergement web temporaire + +1. **Via transfert.sh** (gratuit, temporaire) + ```bash + curl --upload-file dist/compagnon-lagon-beta.apk https://transfer.sh/compagnon.apk + ``` + Vous recevrez un lien à partager (valide 14 jours). + +2. **Via Google Drive/Dropbox** + - Upload `dist/compagnon-lagon-beta.apk` + - Partager le lien public + - Les testeurs téléchargent et installent + +### Option 3 : Serveur local (testeurs sur même réseau) + +```bash +cd dist +python3 -m http.server 8080 +``` + +Les testeurs peuvent télécharger à l'adresse : +``` +http://[VOTRE_IP]:8080/compagnon-lagon-beta.apk +``` + +## 🔄 Mettre à jour l'APK + +Pour générer une nouvelle version après des modifications : + +```bash +# 1. Modifier le code +# 2. Relancer le build +./scripts/build-apk-simple.sh + +# 3. L'APK sera mis à jour dans dist/ +``` + +## 🛠️ Configuration requise (Installation automatique) + +Le script installe automatiquement : +- ✅ **SDKMAN** : Gestionnaire de SDK Java +- ✅ **Java 21** : Requis par Capacitor +- ✅ **Android SDK** : Platform-tools, Build-tools 34.0.0 +- ✅ **Node.js packages** : Capacitor, dépendances + +**Note :** Pas besoin de sudo, tout s'installe dans `~/.sdkman` et `~/Android/Sdk`. + +## 📝 Notes importantes + +### Données statiques +L'APK contient toutes les données en **statique** (JSON dans `public/data/`). +Pour mettre à jour les données : +1. Modifier les fichiers JSON +2. Rebuild l'APK +3. Redistribuer la nouvelle version + +### Signature APK (Debug vs Release) + +**APK Debug** (actuel) : +- ✅ Parfait pour les bêta-tests +- ✅ Signature automatique +- ❌ Ne peut pas être publié sur Play Store + +**APK Release** (pour production) : +```bash +# Générer un keystore +keytool -genkey -v -keystore compagnon-release.keystore \ + -alias compagnon -keyalg RSA -keysize 2048 -validity 10000 + +# Builder en mode release +cd android +./gradlew assembleRelease +``` + +## 🐛 Dépannage + +### Erreur "Java not found" +```bash +source "$HOME/.sdkman/bin/sdkman-init.sh" +sdk use java 21.0.1-tem +``` + +### Erreur "ANDROID_HOME not set" +```bash +export ANDROID_HOME="$HOME/Android/Sdk" +``` + +### Erreur "Gradle daemon stopped" +```bash +cd android +./gradlew --stop +./gradlew clean assembleDebug +``` + +### APK vide / sans contenu +- Vérifier que `out/` contient les fichiers HTML +- Vérifier `public/data/*.json` sont présents +- Rebuild avec `npm run build` avant Capacitor + +## 📞 Support + +En cas de problème, vérifier : +1. Les logs du script : `./scripts/build-apk-simple.sh` +2. Les logs Gradle : `android/build/reports/` +3. Le contenu de `out/` après build Next.js + +--- + +**Version** : 1.0.0 - Novembre 2025 +**App ID** : `com.pensionmarama.app` +**Nom** : Compagnon du Lagon - Pension Marama + diff --git a/scripts/build-apk-simple.sh b/scripts/build-apk-simple.sh index c565638..0f66dbe 100755 --- a/scripts/build-apk-simple.sh +++ b/scripts/build-apk-simple.sh @@ -44,11 +44,45 @@ echo "" # Étape 2: Installer les dépendances si nécessaire echo -e "${BLUE}📦 Étape 2/6: Vérification des dépendances${NC}" + +# Vérifier SDKMAN +if [ ! -f "$HOME/.sdkman/bin/sdkman-init.sh" ]; then + echo "SDKMAN non trouvé. Installation..." + curl -s "https://get.sdkman.io" | bash +fi + +# Initialiser SDKMAN +source "$HOME/.sdkman/bin/sdkman-init.sh" + +# Vérifier Java 21 +if ! sdk current java 2>&1 | grep -q "21.0"; then + echo "Installation de Java 21 (requis par Capacitor)..." + sdk install java 21.0.1-tem + sdk use java 21.0.1-tem +fi + +# Vérifier Android SDK +if [ ! -d "$HOME/Android/Sdk" ]; then + echo "Installation d'Android SDK..." + mkdir -p "$HOME/Android/Sdk/cmdline-tools" + cd "$HOME/Android/Sdk/cmdline-tools" + wget -q https://dl.google.com/android/repository/commandlinetools-linux-9477386_latest.zip + unzip -q commandlinetools-linux-9477386_latest.zip + mv cmdline-tools latest + rm commandlinetools-linux-9477386_latest.zip + cd - + + export ANDROID_HOME="$HOME/Android/Sdk" + export PATH="$ANDROID_HOME/cmdline-tools/latest/bin:$PATH" + yes | sdkmanager --licenses || true + sdkmanager "platform-tools" "platforms;android-34" "build-tools;34.0.0" +fi + if [ ! -d "node_modules" ]; then - echo "Installation des dépendances..." + echo "Installation des dépendances Node.js..." npm install --include=dev else - echo "Dépendances déjà installées" + echo "Dépendances Node.js déjà installées" fi # Installer Capacitor si nécessaire @@ -124,6 +158,11 @@ echo "" # Étape 6: Build l'APK echo -e "${BLUE}📦 Étape 6/6: Génération de l'APK${NC}" +# Initialiser SDKMAN et configurer Java +source "$HOME/.sdkman/bin/sdkman-init.sh" +sdk use java 21.0.1-tem +export ANDROID_HOME="$HOME/Android/Sdk" + cd android # Vérifier que gradlew existe et est exécutable @@ -136,7 +175,7 @@ chmod +x ./gradlew # Build l'APK echo "Construction de l'APK debug..." -./gradlew assembleDebug +./gradlew clean assembleDebug cd ..