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:
286
app/TRANSFERT-MAC.md
Normal file
286
app/TRANSFERT-MAC.md
Normal 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 !** 🚀
|
||||
Reference in New Issue
Block a user