Files
geo/app/README-SCRIPTS.md
pierre 2f5946a184 feat: Version 3.5.2 - Configuration Stripe et gestion des immeubles
- Configuration complète Stripe pour les 3 environnements (DEV/REC/PROD)
  * DEV: Clés TEST Pierre (mode test)
  * REC: Clés TEST Client (mode test)
  * PROD: Clés LIVE Client (mode live)
- Ajout de la gestion des bases de données immeubles/bâtiments
  * Configuration buildings_database pour DEV/REC/PROD
  * Service BuildingService pour enrichissement des adresses
- Optimisations pages et améliorations ergonomie
- Mises à jour des dépendances Composer
- Nettoyage des fichiers obsolètes

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-09 18:26:27 +01:00

401 lines
8.9 KiB
Markdown

# 📜 Scripts de Build GEOSECTOR
**Version** : 3.3.6
**Date** : 14/10/2025
---
## 📦 Scripts disponibles
| Script | Plateforme | Description | Statut |
|--------|-----------|-------------|--------|
| `android.sh` | Android | Build bundle (.aab) + APK optionnel | ✅ Fonctionnel |
| `ios.sh` | iOS | Build + Archive Xcode complète | ✅ **NOUVEAU** |
| `fix-permission-handler.sh` | iOS | Patch package problématique | ✅ Testé |
| `fix-nfc-manager.sh` | Android | Patch namespace Android | ⚠️ À vérifier |
| `fix-ios-packages.sh` | iOS | Script maître (tous les patchs) | ⚠️ Dépend du fix nfc |
| `deploy-app.sh` | DEV | Déploiement sur dapp.geosector.fr | ✅ Existant |
---
## 🍎 Script iOS : `ios.sh`
### Fonctionnalités
Le script `ios.sh` automatise **TOUTE** la chaîne de build iOS :
1.**Vérifications préliminaires**
- Vérification Flutter 3.24.5 LTS
- Vérification CocoaPods
- Vérification Xcode
- Vérification que nous sommes sur macOS
2.**Nettoyage complet**
- `flutter clean`
- Suppression `ios/Pods`
- Suppression `ios/Podfile.lock`
- Suppression `ios/.symlinks`
- Suppression `build/ios`
3.**Récupération des dépendances**
- `flutter pub get`
- Vérification des chemins Flutter (détection erreurs Linux)
4.**Patch permission_handler_apple**
- Exécution automatique de `fix-permission-handler.sh`
- Correction des conflits de headers Flutter
5.**Installation des pods**
- `cd ios && pod install`
- Vérification du workspace Xcode
6.**Analyse du code**
- `flutter analyze` (non bloquant)
- Possibilité de continuer malgré les warnings
7.**Compilation iOS**
- `flutter build ios --release --no-codesign`
- Affichage de la taille de l'app
8.**Archive Xcode (optionnel)**
- Ouverture de Xcode
- Instructions pas à pas
- Attente de la fin de l'archive
### Usage
#### Build standard (avec archive Xcode)
```bash
./ios.sh
```
**Étapes** :
1. Exécute toutes les étapes automatiquement
2. Ouvre Xcode à la fin
3. Affiche les instructions pour créer l'archive
4. Attend que vous appuyiez sur Entrée après l'archive
**Durée estimée** : 5-10 minutes (hors archive Xcode)
#### Build rapide (sans archive)
```bash
./ios.sh --skip-archive
```
**Étapes** :
1. Exécute toutes les étapes jusqu'à la compilation
2. N'ouvre pas Xcode
3. Vous laisse créer l'archive manuellement plus tard
**Durée estimée** : 3-5 minutes
### Sorties du script
#### Succès
```
[INFO] =========================================
[SUCCESS] BUILD iOS TERMINÉ AVEC SUCCÈS !
[INFO] =========================================
Version : 3.3.6 (336)
Bundle ID : fr.geosector.app3
Application : build/ios/iphoneos/Runner.app
Prochaines étapes (dans Xcode) :
1. ✅ Build iOS réussi
2. ⏳ Créer l'archive (Product > Archive)
3. ⏳ Valider l'archive (Organizer > Validate App)
4. ⏳ Upload vers App Store Connect
```
#### Erreur
```
[ERROR] Échec de la compilation iOS
[ERROR] Consultez les logs ci-dessus pour plus de détails
```
### Gestion des erreurs
Le script s'arrête automatiquement en cas d'erreur et affiche :
- La ligne de l'erreur
- Un message explicatif
- Les logs de la commande qui a échoué
---
## 🤖 Script Android : `android.sh`
### Fonctionnalités
1. ✅ Nettoyage du projet (`flutter clean`)
2. ✅ Récupération des dépendances (`flutter pub get`)
3. ✅ Patch nfc_manager automatique
4. ✅ Analyse du code Dart
5. ✅ Génération du bundle (.aab)
6. ✅ Copie du bundle avec nom versionné
7. ✅ Génération optionnelle de l'APK
### Usage
```bash
./android.sh
```
**Sortie** : `geosector-336.aab` (+ optionnel `geosector-336.apk`)
---
## 🔧 Scripts de correction
### `fix-permission-handler.sh` (iOS uniquement)
**Problème corrigé** : Conflits de headers Flutter dans `permission_handler_apple-9.4.7`
**Actions** :
1. Supprime `/ios/Classes/Flutter/` du package
2. Corrige les imports dans `PermissionHandlerPlugin.h`
3. Corrige les imports dans `PermissionManager.h`
**Usage** :
```bash
./fix-permission-handler.sh
```
**Quand l'utiliser** :
- Automatiquement via `ios.sh`
- Manuellement après `flutter pub get`
- Si erreur `'FlutterAppDelegate' has different definitions`
---
### `fix-nfc-manager.sh` (Android uniquement)
**Problème corrigé** : Namespace Android manquant dans `nfc_manager-3.3.0`
**Actions** :
1. Ajoute `namespace` dans `AndroidManifest.xml`
2. Corrige `build.gradle`
3. Corrige `Translator.kt`
**Usage** :
```bash
./fix-nfc-manager.sh
```
**Quand l'utiliser** :
- Automatiquement via `android.sh`
- Manuellement après `flutter pub get`
- Si erreur de compilation Android Gradle
**⚠️ Note** : Sur macOS, ce script peut avoir une erreur `sed`. À débugger si nécessaire.
---
## 🚀 Workflows recommandés
### Build iOS complet
```bash
# Option 1 : Tout automatique
./ios.sh
# Option 2 : Build sans archive
./ios.sh --skip-archive
# Puis plus tard :
open ios/Runner.xcworkspace
# Product > Archive dans Xcode
```
### Build Android complet
```bash
./android.sh
# Génère : geosector-336.aab
```
### Build Web
```bash
flutter build web --release
# Ou via deploy-app.sh pour DEV
```
### Build toutes les plateformes
```bash
# 1. Android
./android.sh
# 2. iOS
./ios.sh --skip-archive
# 3. Web
flutter build web --release
```
---
## 📋 Checklist avant build
### Avant `android.sh`
- [ ] Flutter version correcte
- [ ] Keystore présent : `android/app/geosector2025.jks`
- [ ] Fichier `android/key.properties` configuré
- [ ] Version incrémentée dans `pubspec.yaml`
### Avant `ios.sh`
- [ ] Sur macOS
- [ ] Flutter 3.24.5 LTS installé
- [ ] Xcode installé et à jour
- [ ] CocoaPods installé
- [ ] Team ID configuré : `6WT84NWCTC`
- [ ] Bundle ID correct : `fr.geosector.app3`
- [ ] Version incrémentée dans `pubspec.yaml`
- [ ] Script `fix-permission-handler.sh` présent
---
## 🐛 Dépannage
### Erreur : "Flutter n'est pas dans le PATH"
**Solution** :
```bash
# Ajouter Flutter au PATH
export PATH="$PATH:$HOME/dev/flutter/bin"
# Ou ajouter dans ~/.zshrc (Mac)
```
### Erreur : "CocoaPods not installed"
**Solution** :
```bash
sudo gem install cocoapods
```
### Erreur : "Invalid Podfile file"
**Solution** :
```bash
rm ios/Flutter/Generated.xcconfig
flutter pub get
```
### Erreur : "Build iOS failed"
**Solutions** :
1. Vérifier que `fix-permission-handler.sh` a été exécuté
2. Nettoyer complètement :
```bash
flutter clean
rm -rf ios/Pods ios/Podfile.lock
flutter pub get
./fix-permission-handler.sh
cd ios && pod install
```
3. Vérifier les logs Xcode pour l'erreur exacte
### Script `ios.sh` s'arrête à l'étape 3
**Cause** : Script `fix-permission-handler.sh` introuvable ou non exécutable
**Solution** :
```bash
chmod +x fix-permission-handler.sh
./ios.sh
```
---
## 📊 Temps d'exécution estimés
| Script | Durée | Notes |
|--------|-------|-------|
| `android.sh` | 5-10 min | Dépend de la machine |
| `ios.sh` (sans archive) | 3-5 min | Sur Mac mini/MacBook |
| `ios.sh` (avec archive) | 10-20 min | + temps Xcode Archive |
| `fix-permission-handler.sh` | < 5 secondes | Très rapide |
| `flutter clean` | 10-30 secondes | Variable |
| `flutter pub get` | 30-60 secondes | Variable |
| `pod install` | 30-90 secondes | Première fois plus long |
---
## 📝 Logs et debug
### Activer les logs détaillés
**Android** :
```bash
flutter build appbundle --release --verbose
```
**iOS** :
```bash
flutter build ios --release --no-codesign --verbose
```
### Voir les logs Xcode
Dans Xcode après une erreur :
- Product > Show Build Log (Cmd+B puis Cmd+7)
- Ou dans Terminal :
```bash
tail -f ~/Library/Logs/DiagnosticReports/xcodebuild*
```
---
## 🔗 Références
### Documentation créée
- `BUILD-IOS-SUCCESS.md` - Récapitulatif du succès iOS
- `SOLUTION-IOS.md` - Guide complet de la solution
- `SCRIPTS-IOS.md` - Documentation des scripts iOS
- `README-SCRIPTS.md` - Ce fichier
### Scripts
- `ios.sh` - ✅ Script maître iOS
- `android.sh` - ✅ Script maître Android
- `fix-permission-handler.sh` - ✅ Patch iOS
- `fix-nfc-manager.sh` - ⚠️ Patch Android (à vérifier)
---
## 🎯 Prochaines améliorations possibles
### Script `ios.sh`
- [ ] Création de l'archive via ligne de commande (sans ouvrir Xcode)
- [ ] Upload automatique vers App Store Connect via `xcrun altool`
- [ ] Génération automatique des métadonnées App Store
- [ ] Tests automatisés avant build
### Script `android.sh`
- [ ] Upload automatique vers Google Play Console
- [ ] Tests automatisés avant build
- [ ] Génération de screenshots automatiques
### Scripts communs
- [ ] Script `build-all.sh` - Build toutes les plateformes en une fois
- [ ] Script `test-all.sh` - Tests automatisés toutes plateformes
- [ ] Script `deploy-all.sh` - Déploiement vers tous les environnements
---
**Auteur** : Claude Code + Pierre
**Version** : 1.0.0
**Dernière mise à jour** : 14/10/2025
✅ **Les scripts `android.sh` et `ios.sh` sont prêts à l'emploi !**