Files
geo/app/SCRIPTS-IOS.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

6.2 KiB

📜 Scripts iOS - Guide d'utilisation

Date de création : 14/10/2025 Objectif : Automatiser les corrections nécessaires pour compiler l'application iOS


📂 Scripts disponibles

1. fix-permission-handler.sh TESTÉ ET FONCTIONNEL

Problème corrigé : Le package permission_handler_apple-9.4.7 embarque ses propres headers Flutter qui créent des conflits de compilation.

Actions effectuées :

  • Détecte automatiquement la version du package dans .pub-cache
  • Supprime le dossier /ios/Classes/Flutter/ embarqué
  • Corrige les imports dans PermissionHandlerPlugin.h
  • Corrige les imports dans PermissionManager.h

Usage :

./fix-permission-handler.sh

Quand l'exécuter :

  • Après chaque flutter pub get
  • Avant pod install
  • Si erreurs de compilation 'FlutterAppDelegate' has different definitions

Sortie attendue :

🔧 Fix permission_handler_apple - Correction des conflits Flutter headers

📦 Package trouvé : /Users/pierre/.pub-cache/.../permission_handler_apple-9.4.7

✅ Dossier Flutter supprimé
✅ PermissionHandlerPlugin.h corrigé
✅ PermissionManager.h corrigé

🎉 Correction terminée avec succès !

2. fix-nfc-manager.sh ⚠️ PRÉSENT MAIS NON TESTÉ SUR MAC

Problème corrigé : Le package nfc_manager-3.3.0 manque la déclaration namespace requise par Android Gradle Plugin 8+.

Note : Ce script était fonctionnel sur Debian Linux. Sur Mac, il semble y avoir une erreur sed à corriger.

Actions prévues :

  • Ajout du namespace dans AndroidManifest.xml
  • Correction du fichier build.gradle
  • Correction du fichier Translator.kt

Statut : ⚠️ À débugger si nécessaire (erreur sed détectée)


3. fix-ios-packages.sh (Script maître) ⚠️ EN DÉVELOPPEMENT

Objectif : Exécuter tous les scripts de correction iOS en une seule commande.

Inclut :

  • fix-nfc-manager.sh (si corrigé)
  • fix-permission-handler.sh

Statut actuel : Fonctionne partiellement (erreur sed dans fix-nfc-manager.sh)


🚀 Workflow de build iOS complet

Option A : Build iOS uniquement (recommandé actuellement)

# 1. Nettoyer
flutter clean

# 2. Récupérer les dépendances
flutter pub get

# 3. 🔧 Corriger permission_handler_apple
./fix-permission-handler.sh

# 4. Installer les pods
cd ios && pod install && cd ..

# 5. Compiler
flutter build ios --release --no-codesign

Option B : Build complet (Web + Android + iOS)

Android :

# Le script fix-nfc-manager.sh devrait être exécuté ici
flutter build appbundle --release

iOS :

# Utiliser Option A ci-dessus

Web :

flutter build web --release

Vérifications avant compilation iOS

1. Version Flutter correcte

flutter --version
# Attendu : Flutter 3.24.5 • channel [user-branch]
#          Dart 3.5.4 • DevTools 2.37.3

2. Fichiers de configuration régénérés

cat ios/Flutter/Generated.xcconfig | grep FLUTTER_ROOT
# Attendu : FLUTTER_ROOT=/Users/pierre/dev/flutter

3. Permission handler corrigé

ls ~/.pub-cache/hosted/pub.dev/permission_handler_apple-*/ios/Classes/Flutter/
# Attendu : ls: .../Flutter/: No such file or directory (= bon signe !)

4. Pods installés

cat ios/Podfile.lock | grep "permission_handler_apple"
# Attendu : - permission_handler_apple (9.3.0):

🐛 Dépannage

Erreur : 'FlutterAppDelegate' has different definitions

Solution : Exécuter ./fix-permission-handler.sh

Erreur : Flutter/Flutter.h: No such file or directory

Causes possibles :

  1. Le script fix-permission-handler.sh n'a pas été exécuté
  2. Les imports n'ont pas été corrigés correctement
  3. Le cache build doit être nettoyé

Solution :

./fix-permission-handler.sh
rm -rf build/ios ios/Pods
cd ios && pod install && cd ..
flutter build ios --release --no-codesign

Erreur : Invalid Podfile file: cannot load such file -- podhelper

Cause : Le fichier ios/Flutter/Generated.xcconfig contient de mauvais chemins (Linux au lieu de Mac).

Solution :

rm ios/Flutter/Generated.xcconfig
flutter pub get

Build réussi mais warnings CocoaPods

Warning :

[!] CocoaPods did not set the base configuration of your project...

Impact : ⚠️ Non bloquant, la compilation fonctionne

Solution : (Optionnel) Configurer manuellement dans Xcode les fichiers de configuration CocoaPods


📝 Historique des corrections

14/10/2025 - Solution finale trouvée

Problème : Compilation iOS impossible avec erreurs de conflits de définitions Flutter

Cause identifiée : permission_handler_apple-9.4.7 embarquait ses propres headers Flutter

Solution appliquée :

  1. Suppression du dossier /ios/Classes/Flutter/ du package
  2. Modification des imports : "Flutter/Flutter.h"<Flutter/Flutter.h>
  3. Création du script fix-permission-handler.sh

Résultat :

✓ Built build/ios/iphoneos/Runner.app (107.4MB)
Xcode build done. 59,1s

13/10/2025 - Suppression packages problématiques

Packages supprimés : package_info_plus, network_info_plus, sensors_plus

Raison : Erreurs 'Flutter/Flutter.h' file not found persistantes

Impact : Perte de fonctionnalités mineures (mode boussole, diagnostic WiFi)

11/10/2025 - Downgrade vers Flutter 3.24.5 LTS

Versions testées sans succès :

  • Flutter 3.35.6 (bugs SwiftPM)
  • Flutter 3.35.5 (bugs SwiftPM)
  • Flutter 3.27.2 (incompatibilités)

Version retenue : Flutter 3.24.5 LTS + Dart 3.5.4


🔗 Références

Documentation

  • SOLUTION-IOS.md - Guide complet de la solution finale
  • README-IOS.md - Historique détaillé des tentatives
  • TRANSFERT-MAC.md - Guide de transfert Linux → Mac

Scripts

  • fix-permission-handler.sh - Fonctionnel
  • fix-nfc-manager.sh - ⚠️ À débugger (erreur sed)
  • fix-ios-packages.sh - ⚠️ Dépend du fix nfc_manager

Auteur : Claude Code + Pierre Version : 1.0.0 Dernière mise à jour : 14/10/2025 12:45

Le script fix-permission-handler.sh est prêt à l'emploi !