- 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>
249 lines
6.2 KiB
Markdown
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 !**
|