Files
geo/app/TRANSFERT-MAC.md
pierre 2f5946a184 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>
2025-11-09 18:26:27 +01:00

7.4 KiB
Raw Permalink Blame History

🍎 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

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

# 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

# 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)

# 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

# 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

# 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

cd ios
rm -rf Pods Podfile.lock
pod install
cd ..

Problème : Cache Flutter

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 :

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 ! 🚀