- 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>
287 lines
7.4 KiB
Markdown
287 lines
7.4 KiB
Markdown
# 🍎 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 !** 🚀
|