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:
pierre
2025-11-09 18:26:27 +01:00
parent 21657a3820
commit 2f5946a184
812 changed files with 142105 additions and 25992 deletions

286
app/TRANSFERT-MAC.md Normal file
View File

@@ -0,0 +1,286 @@
# 🍎 Guide de transfert et compilation iOS sur Mac mini
**Date** : 14/10/2025
**Projet** : GEOSECTOR v3.3.6 (Build 336)
**Source** : Debian Linux (minipi1)
**Destination** : Mac mini (compilation iOS)
---
## ✅ Corrections effectuées sur Linux (Debian)
### 🎉 Android : COMPILATION RÉUSSIE
**Problèmes résolus** :
1. ✅ JDK incomplet → Installation `openjdk-21-jdk-headless`
2. ✅ nfc_manager 3.3.0 → Triple patch automatique (AndroidManifest + build.gradle + Translator.kt)
3. ✅ Conflit BouncyCastle/Stripe → Configuration `packaging` dans build.gradle.kts
**Scripts créés** :
-`fix-nfc-manager.sh` - Patch automatique nfc_manager 3.3.0 (3 corrections)
-`android.sh` - Build Android avec auto-patch intégré
-`deploy-app.sh` - Déploiement DEV avec auto-patch et nettoyage cache
**Résultat** : Bundle Android généré avec succès → `geosector-336.aab`
---
### 📦 Packages Flutter modifiés
#### Packages supprimés (incompatibles iOS)
Ces packages causaient des erreurs `'Flutter/Flutter.h' file not found` sur iOS :
| Package | Action | Remplacement |
|---------|--------|--------------|
| `package_info_plus` | ❌ SUPPRIMÉ | ✅ `AppInfoService` auto-généré dans `lib/core/services/app_info_service.dart` |
| `network_info_plus` | ❌ SUPPRIMÉ | ✅ `NetworkInterface` natif Dart (dart:io) |
| `sensors_plus` | ❌ SUPPRIMÉ | ⚠️ Mode boussole retiré (feature optionnelle peu utilisée) |
**Impact fonctionnel** : Minimal - Perte de fonctionnalités mineures (mode boussole, diagnostic WiFi SSID/BSSID)
#### Configuration finale pubspec.yaml
```yaml
dependencies:
flutter:
sdk: flutter
environment:
sdk: '>=3.0.0 <4.0.0'
# Flutter 3.24.5 LTS + Dart 3.5.4
# Packages downgradés pour compatibilité
```
**Versions clés** :
- `nfc_manager: 3.3.0` - Nécessite patch (automatique via scripts)
- `syncfusion_flutter_charts: 27.2.5` - Sweet spot compatible
- `geolocator: 13.0.3` - Sans toARGB32()
- `battery_plus: 6.0.3` - Fix Gradle AGP 8
- `connectivity_plus: 6.0.5` - Fix Gradle AGP 8
---
## 📋 Étapes de compilation iOS sur Mac mini
### 1⃣ Décompression et setup initial
```bash
# Décompresser l'archive
cd ~/dev/geosector
unzip app-14oct2025.zip
cd app
# Vérifier la version Flutter (doit être 3.24.5 LTS)
flutter --version
# Flutter 3.24.5 • channel stable
# Dart 3.5.4
```
### 2⃣ Installation des dépendances
```bash
# Nettoyer (par précaution)
flutter clean
# Récupérer les dépendances Flutter
flutter pub get
# Installer les pods iOS
cd ios
pod install
cd ..
```
**Résultat attendu** :
- ✅ 25 pods installés
- ✅ Aucune erreur de dépendances
### 3⃣ Vérification de la configuration iOS
**Fichiers critiques à vérifier** :
#### `ios/Runner/Info.plist`
Doit contenir les permissions :
- ✅ Localisation (GPS)
- ✅ NFC (tags secteurs)
- ✅ Bluetooth (terminaux Stripe)
- ✅ Caméra (scan cartes)
- ✅ Photos (justificatifs)
#### `ios/Runner/Runner.entitlements`
Doit contenir :
- ✅ NFC Tag Reading (NDEF, TAG)
- ✅ Stripe Terminal - Tap to Pay on iPhone
- ✅ Network Access
- ✅ Keychain Sharing
### 4⃣ Compilation de test (sans signature)
```bash
# Build iOS en release sans codesign
flutter build ios --release --no-codesign
```
**Résultats possibles** :
#### ✅ Si compilation réussit
→ Passer directement à l'étape 5 (Xcode)
#### ❌ Si erreurs de compilation
Consulter `README-IOS.md` (section "Diagnostic final - Problème structurel iOS")
**Erreurs possibles** :
- `'Flutter/Flutter.h' file not found` → Problème SwiftPM (voir README-IOS.md)
- Erreurs de pods → Réexécuter `pod install`
### 5⃣ Configuration Xcode
```bash
# Ouvrir le workspace Xcode
open ios/Runner.xcworkspace
```
#### Dans Xcode :
**A. Vérifier le Team ID**
1. Sélectionner le target `Runner`
2. Onglet `Signing & Capabilities`
3. Team : `6WT84NWCTC`
**B. Vérifier Bundle Identifier**
- Bundle ID : `fr.geosector.app3`
**C. Vérifier les Capabilities**
- ✅ Near Field Communication Tag Reading
- ⚠️ Tap to Pay on iPhone (nécessite approbation Apple spéciale)
**D. Vérifier la version**
- Version : `3.3.6`
- Build : `336`
### 6⃣ Archive pour App Store
```bash
# Dans Xcode :
# Product > Clean Build Folder (Cmd+Shift+K)
# Product > Archive
```
**Durée estimée** : 5-10 minutes
---
## 🔧 Résolution de problèmes iOS
### Problème : Erreur SwiftPM / Flutter.h
**Symptôme** :
```
'Flutter/Flutter.h' file not found
```
**Causes possibles** :
1. Flutter 3.24.5 LTS avec packages récents (incompatibilité SwiftPM)
2. Transition SwiftPM incomplète dans l'écosystème Flutter
**Solutions documentées dans `README-IOS.md`** :
- Option A : Désactiver SwiftPM (forcer CocoaPods pur)
- Option B : Patcher manuellement les headers
- Option C : Attendre Flutter 3.28+ LTS avec SwiftPM stable
### Problème : Pods non installés
```bash
cd ios
rm -rf Pods Podfile.lock
pod install
cd ..
```
### Problème : Cache Flutter
```bash
flutter clean
rm -rf ios/Pods ios/Podfile.lock
flutter pub get
cd ios && pod install && cd ..
```
---
## 📊 État actuel du projet
| Plateforme | Statut | Notes |
|------------|--------|-------|
| **Web** | ✅ Compilé | Déployable immédiatement |
| **Android** | ✅ Compilé | Bundle prêt : `geosector-336.aab` |
| **iOS** | ⏳ En attente | Configuration Mac mini requise |
---
## 📂 Structure du projet transféré
```
app/
├── fix-nfc-manager.sh # Script de patch nfc_manager (Android uniquement)
├── android.sh # Build Android avec auto-patch
├── deploy-app.sh # Déploiement DEV avec auto-patch
├── pubspec.yaml # Configuration finale Flutter 3.24.5 LTS
├── README-IOS.md # Guide détaillé iOS (historique problèmes)
├── TRANSFERT-MAC.md # Ce fichier
├── docs/
│ └── TODO-APP.md # Documentation complète (Phase 8 Android complétée)
├── lib/
│ └── core/services/
│ └── app_info_service.dart # Remplace package_info_plus (auto-généré)
├── android/
│ └── app/build.gradle.kts # Configuration packaging BouncyCastle
└── ios/
├── Runner/
│ ├── Info.plist # Permissions iOS
│ └── Runner.entitlements # Entitlements Stripe Tap to Pay
└── Podfile # CocoaPods configuration
```
---
## 🎯 Objectif final iOS
**Créer l'archive App Store** :
1. ✅ Compilation iOS réussie
2. ✅ Validation de l'archive (Organizer)
3. ✅ Upload vers App Store Connect
4. ✅ Configuration métadonnées + captures d'écran
5. ✅ Soumission pour révision Apple
**Deadline** : Aucune urgence (Android fonctionnel pour tests)
---
## 📞 Support et documentation
**Documents de référence** :
- `README-IOS.md` - Guide complet iOS avec historique des tentatives
- `docs/TODO-APP.md` - Documentation technique complète (Phase 8 Android)
- Apple Developer : https://developer.apple.com
- App Store Connect : https://appstoreconnect.apple.com
**Configuration serveur** :
- DEV : dapp.geosector.fr
- REC : rapp.geosector.fr
- PROD : app3.geosector.fr
---
**✅ Le projet est prêt pour le transfert et la compilation iOS !**
**Prochaines étapes** :
1. Zipper le dossier `app/`
2. Transférer sur Mac mini (Samba/rsync)
3. Suivre les étapes 1-6 ci-dessus
4. Croiser les doigts pour la compilation iOS 🤞
**Bonne chance !** 🚀