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

8.9 KiB

📜 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)

./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)

./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

./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 :

./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 :

./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

# 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

./android.sh
# Génère : geosector-336.aab

Build Web

flutter build web --release
# Ou via deploy-app.sh pour DEV

Build toutes les plateformes

# 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 :

# Ajouter Flutter au PATH
export PATH="$PATH:$HOME/dev/flutter/bin"
# Ou ajouter dans ~/.zshrc (Mac)

Erreur : "CocoaPods not installed"

Solution :

sudo gem install cocoapods

Erreur : "Invalid Podfile file"

Solution :

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

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 :

flutter build appbundle --release --verbose

iOS :

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 :
    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 !