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>
This commit is contained in:
248
app/SOLUTION-IOS.md
Normal file
248
app/SOLUTION-IOS.md
Normal file
@@ -0,0 +1,248 @@
|
||||
# ✅ Solution de compilation iOS - GEOSECTOR v3.3.6
|
||||
|
||||
**Date de résolution** : 14/10/2025
|
||||
**Statut** : ✅ **RÉSOLU - Compilation iOS réussie**
|
||||
**Version Flutter** : 3.24.5 LTS + Dart 3.5.4
|
||||
|
||||
---
|
||||
|
||||
## 🎉 Résultat final
|
||||
|
||||
```bash
|
||||
✓ Built build/ios/iphoneos/Runner.app (107.4MB)
|
||||
```
|
||||
|
||||
**Temps de compilation** : 59,1 secondes
|
||||
**Erreurs** : 0
|
||||
**Warnings** : Configuration CocoaPods (non bloquant)
|
||||
|
||||
---
|
||||
|
||||
## 🔍 Problème initial
|
||||
|
||||
Après 5 tentatives avec différentes versions de Flutter (3.35.6, 3.35.5, 3.27.2, 3.24.5), l'application rencontrait systématiquement des erreurs :
|
||||
|
||||
```
|
||||
Error (Xcode): 'FlutterAppDelegate' has different definitions in different modules
|
||||
Error (Xcode): 'FlutterViewController' has different definitions in different modules
|
||||
Error (Xcode): 'FlutterEngine' has different definitions in different modules
|
||||
```
|
||||
|
||||
**Cause racine** : Le package **`permission_handler_apple-9.4.7`** embarquait ses propres copies des headers Flutter dans `/ios/Classes/Flutter/`, créant un conflit de définitions avec les vrais headers Flutter du framework système.
|
||||
|
||||
---
|
||||
|
||||
## ✅ Solution appliquée
|
||||
|
||||
### 1. Suppression du dossier Flutter embarqué
|
||||
|
||||
```bash
|
||||
rm -rf ~/.pub-cache/hosted/pub.dev/permission_handler_apple-9.4.7/ios/Classes/Flutter
|
||||
```
|
||||
|
||||
### 2. Correction des imports dans les headers
|
||||
|
||||
**Fichier** : `PermissionHandlerPlugin.h`
|
||||
```objc
|
||||
// AVANT
|
||||
#import "Flutter/Flutter.h"
|
||||
|
||||
// APRÈS
|
||||
#import <Flutter/Flutter.h>
|
||||
```
|
||||
|
||||
**Fichier** : `PermissionManager.h`
|
||||
```objc
|
||||
// AVANT
|
||||
#import "Flutter/Flutter.h"
|
||||
|
||||
// APRÈS
|
||||
#import <Flutter/Flutter.h>
|
||||
```
|
||||
|
||||
### 3. Nettoyage du cache et réinstallation
|
||||
|
||||
```bash
|
||||
rm -rf build/ios ios/Pods
|
||||
cd ios && pod install && cd ..
|
||||
flutter build ios --release --no-codesign
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 🤖 Scripts automatisés créés
|
||||
|
||||
### Script 1 : `fix-permission-handler.sh`
|
||||
|
||||
Corrige automatiquement le package `permission_handler_apple` :
|
||||
- ✅ Détecte automatiquement la version installée
|
||||
- ✅ Supprime le dossier `Flutter/` embarqué
|
||||
- ✅ Corrige les imports dans les 2 fichiers `.h`
|
||||
- ✅ Messages colorés avec statut de chaque étape
|
||||
|
||||
**Usage** :
|
||||
```bash
|
||||
./fix-permission-handler.sh
|
||||
```
|
||||
|
||||
### Script 2 : `fix-ios-packages.sh` (Script maître)
|
||||
|
||||
Combine tous les fixes iOS (nfc_manager + permission_handler_apple) :
|
||||
- ✅ Exécute `fix-nfc-manager.sh` (si présent)
|
||||
- ✅ Exécute `fix-permission-handler.sh`
|
||||
- ✅ Affiche le workflow complet de build iOS
|
||||
|
||||
**Usage** :
|
||||
```bash
|
||||
./fix-ios-packages.sh
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 📋 Workflow de build iOS recommandé
|
||||
|
||||
### Build complet (après modifications de code)
|
||||
|
||||
```bash
|
||||
flutter clean
|
||||
flutter pub get
|
||||
./fix-ios-packages.sh
|
||||
cd ios && pod install && cd ..
|
||||
flutter build ios --release --no-codesign
|
||||
```
|
||||
|
||||
### Build rapide (sans modification de dépendances)
|
||||
|
||||
```bash
|
||||
flutter build ios --release --no-codesign
|
||||
```
|
||||
|
||||
### Après chaque `flutter pub get`
|
||||
|
||||
```bash
|
||||
./fix-ios-packages.sh
|
||||
cd ios && pod install && cd ..
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 🔧 Configuration actuelle
|
||||
|
||||
### Versions
|
||||
|
||||
- **Flutter** : 3.24.5 LTS
|
||||
- **Dart** : 3.5.4
|
||||
- **Xcode** : 16.4
|
||||
- **iOS Deployment Target** : 15.4+
|
||||
|
||||
### Packages critiques iOS
|
||||
|
||||
| Package | Version | Notes |
|
||||
|---------|---------|-------|
|
||||
| `permission_handler_apple` | 9.4.7 | ⚠️ Nécessite fix (script créé) |
|
||||
| `nfc_manager` | 3.3.0 | ⚠️ Nécessite fix namespace Android |
|
||||
| `flutter_stripe` | 11.5.0 | ✅ Compatible |
|
||||
| `mek_stripe_terminal` | 4.6.0 | ✅ Tap to Pay on iPhone |
|
||||
| `geolocator` | 13.0.4 | ✅ Compatible |
|
||||
|
||||
### Packages supprimés (causes d'erreurs)
|
||||
|
||||
Ces packages ont été supprimés car ils causaient des erreurs `'Flutter/Flutter.h' file not found` :
|
||||
|
||||
- ❌ `package_info_plus` → Remplacé par `AppInfoService` auto-généré
|
||||
- ❌ `network_info_plus` → Remplacé par `NetworkInterface` natif Dart (dart:io)
|
||||
- ❌ `sensors_plus` → Mode boussole retiré (feature optionnelle)
|
||||
|
||||
**Impact fonctionnel** : Minimal (fonctionnalités mineures perdues)
|
||||
|
||||
---
|
||||
|
||||
## 🎯 Prochaines étapes
|
||||
|
||||
### Pour l'App Store
|
||||
|
||||
1. **Ouvrir Xcode** :
|
||||
```bash
|
||||
open ios/Runner.xcworkspace
|
||||
```
|
||||
|
||||
2. **Vérifier la configuration** :
|
||||
- Team ID : `6WT84NWCTC`
|
||||
- Bundle ID : `fr.geosector.app3`
|
||||
- Version : `3.3.6 (336)`
|
||||
|
||||
3. **Créer l'archive** :
|
||||
- Product > Clean Build Folder (Cmd+Shift+K)
|
||||
- Product > Archive
|
||||
|
||||
4. **Uploader vers App Store Connect** :
|
||||
- Organizer > Validate App
|
||||
- Distribute App > Upload
|
||||
|
||||
### Tests recommandés
|
||||
|
||||
- ✅ Test sur simulateur iOS 15.4+
|
||||
- ✅ Test sur device physique (iPhone)
|
||||
- ✅ Validation Stripe Tap to Pay (nécessite approbation Apple)
|
||||
- ✅ Test mode hors ligne
|
||||
- ✅ Test géolocalisation GPS
|
||||
|
||||
---
|
||||
|
||||
## 📚 Références
|
||||
|
||||
### Documentation créée
|
||||
|
||||
- `README-IOS.md` - Historique complet des tentatives et problèmes
|
||||
- `TRANSFERT-MAC.md` - Guide de transfert depuis Debian Linux
|
||||
- `fix-permission-handler.sh` - Script de correction automatique
|
||||
- `fix-ios-packages.sh` - Script maître de correction iOS
|
||||
|
||||
### Commits importants
|
||||
|
||||
- **13/10/2025** : Suppression packages problématiques (package_info_plus, network_info_plus, sensors_plus)
|
||||
- **14/10/2025** : ✅ **Solution finale trouvée** - Fix permission_handler_apple
|
||||
|
||||
---
|
||||
|
||||
## ⚠️ Notes importantes
|
||||
|
||||
### Après chaque mise à jour Flutter
|
||||
|
||||
Si vous mettez à jour Flutter, vous devrez peut-être :
|
||||
1. Vérifier la compatibilité des packages
|
||||
2. Réexécuter `./fix-ios-packages.sh`
|
||||
3. Réinstaller les pods : `cd ios && pod install`
|
||||
|
||||
### Problèmes potentiels futurs
|
||||
|
||||
Si `permission_handler_apple` se met à jour vers une version supérieure :
|
||||
- Le script devrait continuer à fonctionner (détection automatique de version)
|
||||
- Si problème : vérifier que le dossier `Flutter/` embarqué existe toujours
|
||||
- Adapter le script si la structure du package change
|
||||
|
||||
### Packages à surveiller
|
||||
|
||||
Ces packages peuvent causer des problèmes similaires à l'avenir :
|
||||
- `permission_handler_apple` (actuellement fixé)
|
||||
- `package_info_plus` (si réintégré)
|
||||
- `network_info_plus` (si réintégré)
|
||||
- `sensors_plus` (si réintégré)
|
||||
|
||||
---
|
||||
|
||||
## 🙏 Remerciements
|
||||
|
||||
Cette solution a été trouvée après analyse approfondie de :
|
||||
- Documentation Flutter sur la transition SwiftPM
|
||||
- GitHub Issues flutter/flutter #137945
|
||||
- Tests avec 5 versions différentes de Flutter
|
||||
- Analyse du contenu des packages problématiques
|
||||
|
||||
---
|
||||
|
||||
**Auteur** : Claude Code + Pierre
|
||||
**Version** : 1.0.0
|
||||
**Dernière mise à jour** : 14/10/2025 12:30
|
||||
|
||||
✅ **La compilation iOS fonctionne maintenant parfaitement avec Flutter 3.24.5 LTS !**
|
||||
Reference in New Issue
Block a user