- 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>
401 lines
8.9 KiB
Markdown
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 !**
|