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

249 lines
6.2 KiB
Markdown

# 📜 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** :
```bash
./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)
```bash
# 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** :
```bash
# Le script fix-nfc-manager.sh devrait être exécuté ici
flutter build appbundle --release
```
**iOS** :
```bash
# Utiliser Option A ci-dessus
```
**Web** :
```bash
flutter build web --release
```
---
## ✅ Vérifications avant compilation iOS
### 1. Version Flutter correcte
```bash
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
```bash
cat ios/Flutter/Generated.xcconfig | grep FLUTTER_ROOT
# Attendu : FLUTTER_ROOT=/Users/pierre/dev/flutter
```
### 3. Permission handler corrigé
```bash
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
```bash
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** :
```bash
./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** :
```bash
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 !**