Amélioration du script APK et ajout du guide complet

- 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)
This commit is contained in:
2025-11-23 10:41:28 +01:00
parent 621e478705
commit 43b733b439
2 changed files with 203 additions and 3 deletions

161
GUIDE_APK.md Normal file
View File

@ -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

View File

@ -44,11 +44,45 @@ echo ""
# Étape 2: Installer les dépendances si nécessaire # Étape 2: Installer les dépendances si nécessaire
echo -e "${BLUE}📦 Étape 2/6: Vérification des dépendances${NC}" 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 if [ ! -d "node_modules" ]; then
echo "Installation des dépendances..." echo "Installation des dépendances Node.js..."
npm install --include=dev npm install --include=dev
else else
echo "Dépendances déjà installées" echo "Dépendances Node.js déjà installées"
fi fi
# Installer Capacitor si nécessaire # Installer Capacitor si nécessaire
@ -124,6 +158,11 @@ echo ""
# Étape 6: Build l'APK # Étape 6: Build l'APK
echo -e "${BLUE}📦 Étape 6/6: Génération de l'APK${NC}" 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 cd android
# Vérifier que gradlew existe et est exécutable # Vérifier que gradlew existe et est exécutable
@ -136,7 +175,7 @@ chmod +x ./gradlew
# Build l'APK # Build l'APK
echo "Construction de l'APK debug..." echo "Construction de l'APK debug..."
./gradlew assembleDebug ./gradlew clean assembleDebug
cd .. cd ..