- 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>
209 lines
5.1 KiB
Markdown
209 lines
5.1 KiB
Markdown
# 🍎 Guide de Build iOS - GEOSECTOR
|
|
|
|
**Date de création** : 21/10/2025
|
|
**Version actuelle** : 3.4.2 (Build 342)
|
|
|
|
---
|
|
|
|
## 📋 **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)
|
|
|
|
### Sur Debian
|
|
- ✅ Accès SSH au Mac mini (192.168.1.34)
|
|
- ✅ rsync installé
|
|
|
|
---
|
|
|
|
## 🚀 **Procédure complète**
|
|
|
|
### **Étape 1 : Transfert depuis Debian vers Mac mini**
|
|
|
|
```bash
|
|
# Sur votre machine Debian
|
|
cd /home/pierre/dev/geosector/app
|
|
|
|
# Lancer le transfert
|
|
./transfer-to-mac.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
|
|
|
|
---
|
|
|
|
### **Étape 2 : Connexion au Mac mini**
|
|
|
|
```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
|
|
./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
|
|
|
|
**Résultat** : Xcode s'ouvre, prêt pour Product > Archive
|
|
|
|
---
|
|
|
|
### **Étape 4 : Créer l'archive et upload vers App Store Connect**
|
|
|
|
**Xcode est ouvert automatiquement** ✅
|
|
|
|
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.
|
|
|
|
---
|
|
|
|
## 📁 **Structure des dossiers sur Mac mini**
|
|
|
|
```
|
|
/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
|
|
|
|
---
|
|
|
|
## 🔧 **Résolution de problèmes**
|
|
|
|
### **Erreur : "Flutter not found"**
|
|
|
|
```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 : "xcodebuild not found"**
|
|
|
|
```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**
|
|
|
|
- [ ] 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
|
|
```
|
|
|
|
---
|
|
|
|
## 📞 **Support**
|
|
|
|
- **Documentation Apple** : https://developer.apple.com
|
|
- **App Store Connect** : https://appstoreconnect.apple.com
|
|
- **Flutter iOS** : https://docs.flutter.dev/deployment/ios
|
|
|
|
---
|
|
|
|
✅ **Prêt pour la production !** 🚀
|