feat: Version 3.6.2 - Correctifs tâches #17-20

- #17: Amélioration gestion des secteurs et statistiques
- #18: Optimisation services API et logs
- #19: Corrections Flutter widgets et repositories
- #20: Fix création passage - détection automatique ope_users.id vs users.id

Suppression dossier web/ (migration vers app Flutter)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
2026-01-16 14:11:15 +01:00
parent 7b78037175
commit 232940b1eb
196 changed files with 8483 additions and 7966 deletions

View File

@@ -1,208 +1,143 @@
# 🍎 Guide de Build iOS - GEOSECTOR
**Date de création** : 21/10/2025
**Version actuelle** : 3.4.2 (Build 342)
**Dernière mise à jour** : 16/11/2025
**Version système** : Workflow automatisé depuis Debian
---
## 📋 **Prérequis**
## 📋 Prérequis
### Sur le Mac mini
-macOS installé
-Xcode installé avec Command Line Tools
-Flutter installé (3.24.5 LTS recommandé)
- ✅ CocoaPods installé (`sudo gem install cocoapods`)
- ✅ Certificats Apple configurés (Team ID: 6WT84NWCTC)
### Mac mini (192.168.1.34)
-Xcode + Command Line Tools
-Flutter 3.24.5 LTS
-CocoaPods installé
- ✅ Certificats Apple (Team: **6WT84NWCTC**)
### Sur Debian
- ✅ Accès SSH au Mac mini (192.168.1.34)
-rsync installé
### PC Debian (développement)
- ✅ Accès SSH au Mac mini
-Fichier `../VERSION` à jour
---
## 🚀 **Procédure complète**
## 🚀 Build iOS - Workflow complet
### **Étape 1 : Transfert depuis Debian vers Mac mini**
### **Commande unique depuis Debian**
```bash
# Sur votre machine Debian
cd /home/pierre/dev/geosector/app
# Lancer le transfert
./transfer-to-mac.sh
./ios.sh
```
**Ce que fait le script** :
1. Détecte automatiquement la version (ex: 342)
2. Crée le dossier `app_342` sur le Mac mini
3. Transfert tous les fichiers nécessaires (lib, ios, pubspec.yaml, etc.)
4. Exclut les dossiers inutiles (build, .dart_tool, Pods, etc.)
**Durée** : 2-5 minutes (selon la connexion réseau)
**Note** : Vous devrez saisir le mot de passe du Mac mini
1. ✅ Lit `../VERSION` (ex: 3.5.3)
2. ✅ Met à jour `pubspec.yaml` (3.5.3+353)
3. ✅ Teste connexion Mac mini
4. ✅ Transfert rsync → `/Users/pierre/dev/geosector/app_353/`
5. 🔀 **Choix A** : Lance build SSH automatique
6. 🔀 **Choix B** : Instructions manuelles
---
### **Étape 2 : Connexion au Mac mini**
### **Option A : Build automatique (recommandé)**
Sélectionner **A** dans le menu :
- SSH automatique vers Mac mini
- Lance `ios-build-mac.sh`
- Ouvre Xcode pour l'archive
### **Option B : Build manuel**
```bash
# Depuis Debian
ssh pierre@192.168.1.34
# Aller dans le dossier transféré
cd /Users/pierre/dev/geosector/app_342
```
---
### **Étape 3 : Lancer le build iOS**
```bash
# Sur le Mac mini
cd /Users/pierre/dev/geosector/app_353
./ios-build-mac.sh
```
**Ce que fait le script** :
1. ✅ Nettoie le projet (`flutter clean`)
2. ✅ Récupère les dépendances (`flutter pub get`)
3. ✅ Installe les pods (`pod install`)
4. ✅ Compile en release (`flutter build ios --release`)
5. ✅ Ouvre Xcode pour l'archive (signature manuelle plus fiable)
---
**Durée de préparation** : 5-10 minutes
## 📦 Archive et Upload (Xcode)
**Résultat** : Xcode s'ouvre, prêt pour Product > Archive
**Xcode s'ouvre automatiquement** après le build ✅
1. ⏳ Attendre chargement Xcode
2. ✅ Vérifier **Signing & Capabilities**
- Team : `6WT84NWCTC`
- "Automatically manage signing" : ✅
3. 🧹 **Product > Clean Build Folder** (⌘⇧K)
4. 📦 **Product > Archive** (⏳ 5-10 min)
5. 📤 **Organizer****Distribute App**
6. ☁️ **App Store Connect****Upload**
7.**Upload** (⏳ 2-5 min)
---
### **Étape 4 : Créer l'archive et upload vers App Store Connect**
## 📱 TestFlight (App Store Connect)
**Xcode est ouvert automatiquement**
https://appstoreconnect.apple.com
Dans Xcode :
1. ⏳ Attendre le chargement (quelques secondes)
2. ✅ Vérifier **Signing & Capabilities** : Team = 6WT84NWCTC, "Automatically manage signing" coché
3. 🧹 **Product > Clean Build Folder** (Cmd+Shift+K)
4. 📦 **Product > Archive**
5. ⏳ Attendre l'archive (5-10 minutes)
6. 📤 **Organizer** s'ouvre → Clic **Distribute App**
7. ☁️ Choisir **App Store Connect**
8.**Upload** → Automatique
9. 🚀 **Next** jusqu'à validation finale
**⚠️ Ne PAS utiliser xcodebuild en ligne de commande** : erreurs de signature (errSecInternalComponent). Xcode GUI obligatoire.
1. **Apps** > **GeoSector** > **TestFlight**
2. ⏳ Attendre traitement (5-15 min)
3. Build **353 (3.5.3)** apparaît
4. **Conformité export** :
- Utilise chiffrement ? → **Oui**
- Algorithmes exempts ? → **Aucun des algorithmes mentionnés**
5. **Testeurs internes** → Ajouter ton Apple ID
6. 📧 Invitation TestFlight envoyée
---
## 📁 **Structure des dossiers sur Mac mini**
## ✅ Checklist rapide
```
/Users/pierre/dev/geosector/
├── app_342/ # Version 3.4.2 (Build 342)
│ ├── ios/
│ ├── lib/
│ ├── pubspec.yaml
│ ├── ios-build-mac.sh # Script de build
│ └── build/
│ └── Runner.xcarchive # Archive générée
├── app_341/ # Version précédente (si existe)
└── app_343/ # Version future
```
**Avantage** : Garder plusieurs versions côte à côte pour tests/rollback
- [ ] Mettre à jour `../VERSION` (ex: 3.5.4)
- [ ] Lancer `./ios.sh` depuis Debian
- [ ] Archive créée dans Xcode
- [ ] Upload vers App Store Connect
- [ ] Conformité export renseignée
- [ ] Testeur interne ajouté
- [ ] App installée via TestFlight
---
## 🔧 **Résolution de problèmes**
## 🔧 Résolution problèmes
### **Erreur : "Flutter not found"**
### Erreur SSH "Too many authentication failures"
**Corrigé** : Le script force l'authentification par mot de passe
```bash
# Vérifier que Flutter est dans le PATH
echo $PATH | grep flutter
# Ajouter Flutter au PATH (dans ~/.zshrc ou ~/.bash_profile)
export PATH="$PATH:/opt/flutter/bin"
source ~/.zshrc
### Erreur de signature Xcode
```
Signing & Capabilities > Team = 6WT84NWCTC
"Automatically manage signing" ✅
```
### **Erreur : "xcodebuild not found"**
### Pod install échoue
```bash
# Installer Xcode Command Line Tools
xcode-select --install
```
### **Erreur lors de pod install**
```bash
# Sur le Mac mini
cd ios
rm -rf Pods Podfile.lock
pod install --repo-update
cd ..
```
### **Erreur de signature**
1. Ouvrir Xcode : `open ios/Runner.xcworkspace`
2. Sélectionner le target "Runner"
3. Onglet "Signing & Capabilities"
4. Vérifier Team ID : `6WT84NWCTC`
5. Cocher "Automatically manage signing"
### **Archive créée mais vide**
Vérifier que la compilation iOS a réussi :
```bash
flutter build ios --release --no-codesign --verbose
```
---
## 📊 **Checklist de validation**
## 🎯 Workflow version complète
- [ ] Version/Build incrémenté dans `pubspec.yaml`
- [ ] Compilation iOS réussie
- [ ] Archive validée dans Xcode Organizer
- [ ] Build uploadé vers App Store Connect
- [ ] **TestFlight** : Ajouter build au groupe "Testeurs externes"
- [ ] Renseigner "Infos sur l'exportation de conformité" :
- **App utilise chiffrement ?** → Oui
- **Algorithmes exempts listés ?** → **Aucun des algorithmes mentionnés ci-dessus**
- (App utilise HTTPS standard iOS uniquement)
- [ ] Soumettre build pour révision TestFlight
- [ ] *(Optionnel)* Captures/Release notes pour production App Store
---
## 🎯 **Workflow complet**
```bash
# 1. Debian → Transfert
cd /home/pierre/dev/geosector/app
./transfer-to-mac.sh
# 2. Mac mini → Build + Archive
ssh pierre@192.168.1.34
cd /Users/pierre/dev/geosector/app_342
./ios-build-mac.sh
# Xcode s'ouvre → Product > Clean + Archive
# 3. Upload → TestFlight
# Organizer > Distribute App > App Store Connect > Upload
# App Store Connect > TestFlight > Conformité export
```mermaid
Debian (dev) → Mac mini (build) → App Store Connect → TestFlight → iPhone
│ │ │ │ │
↓ ↓ ↓ ↓ ↓
ios.sh build iOS Upload Traitement Install
+ Archive (5-15 min)
```
**Temps total** : 20-30 minutes (build + upload + traitement Apple)
---
## 📞 **Support**
## 📞 Liens utiles
- **Documentation Apple** : https://developer.apple.com
- **App Store Connect** : https://appstoreconnect.apple.com
- **TestFlight** : App dans l'App Store
- **Flutter iOS** : https://docs.flutter.dev/deployment/ios
---
**Prêt pour la production !** 🚀
**Prêt pour TestFlight !** 🚀