- Ajout du service PasswordSecurityService conforme NIST SP 800-63B - Vérification des mots de passe contre la base Have I Been Pwned - Validation : minimum 8 caractères, maximum 64 caractères - Pas d'exigences de composition obligatoires (conforme NIST) - Intégration dans LoginController et UserController - Génération de mots de passe sécurisés non compromis 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
385 lines
8.2 KiB
Markdown
385 lines
8.2 KiB
Markdown
# 📱 Guide de Test iOS - Geosector App
|
||
|
||
## ⚠️ Prérequis Importants
|
||
|
||
### Matériel Requis
|
||
- **Mac** avec macOS 10.15 (Catalina) ou plus récent
|
||
- **iPhone** avec iOS 12.0 ou plus récent
|
||
- **Câble Lightning/USB-C** pour la connexion
|
||
- **Apple Developer Account** (gratuit pour tests locaux)
|
||
- **Xcode** 14.0 ou plus récent
|
||
|
||
### ❌ Limitations Linux/Windows
|
||
**IMPORTANT** : Le développement iOS nécessite obligatoirement un Mac.
|
||
- Pas de compilation iOS native sur Linux/Windows
|
||
- Solutions alternatives limitées (voir section "Alternatives")
|
||
|
||
---
|
||
|
||
## 🍎 Configuration sur Mac
|
||
|
||
### 1️⃣ Installation des Outils
|
||
|
||
#### Installer Xcode
|
||
```bash
|
||
# Via App Store ou ligne de commande
|
||
xcode-select --install
|
||
|
||
# Accepter la licence Xcode
|
||
sudo xcodebuild -license accept
|
||
```
|
||
|
||
#### Vérifier Flutter pour iOS
|
||
```bash
|
||
# Vérifier la configuration iOS
|
||
flutter doctor
|
||
|
||
# Résoudre les problèmes iOS si nécessaire
|
||
flutter doctor --verbose
|
||
```
|
||
|
||
#### Installer CocoaPods
|
||
```bash
|
||
# CocoaPods est nécessaire pour les dépendances iOS
|
||
sudo gem install cocoapods
|
||
pod setup
|
||
```
|
||
|
||
### 2️⃣ Configuration du Projet
|
||
|
||
#### Ouvrir le projet iOS dans Xcode
|
||
```bash
|
||
# Depuis le dossier du projet Flutter
|
||
cd ios
|
||
open Runner.xcworkspace
|
||
```
|
||
|
||
#### Configuration dans Xcode
|
||
1. **Sélectionner l'équipe de développement** :
|
||
- Runner → Signing & Capabilities
|
||
- Team : Sélectionner votre Apple ID
|
||
- Bundle Identifier : `com.votredomaine.geosector`
|
||
|
||
2. **Configurer le déploiement** :
|
||
- Deployment Info → iOS 12.0 minimum
|
||
- Device Orientation : Portrait + Landscape
|
||
|
||
---
|
||
|
||
## 📲 Configuration de l'iPhone
|
||
|
||
### 1️⃣ Mode Développeur (iOS 16+)
|
||
|
||
#### Activer le Mode Développeur
|
||
```
|
||
Réglages → Confidentialité et sécurité → Mode développeur → Activer
|
||
```
|
||
**Note** : Le téléphone redémarrera
|
||
|
||
### 2️⃣ Trust Computer
|
||
|
||
1. Brancher l'iPhone au Mac
|
||
2. **Sur l'iPhone** : "Faire confiance à cet ordinateur" → Faire confiance
|
||
3. Entrer le code de déverrouillage
|
||
|
||
---
|
||
|
||
## 🚀 Lancer l'Application
|
||
|
||
### Test via USB
|
||
|
||
#### Vérifier la connexion
|
||
```bash
|
||
# Lister les appareils disponibles
|
||
flutter devices
|
||
|
||
# Devrait afficher quelque chose comme :
|
||
# iPhone de Pierre (mobile) • 00008110-001234567890ABCD • ios • iOS 17.2
|
||
```
|
||
|
||
#### Lancer en mode Debug
|
||
```bash
|
||
# Lancer sur l'iPhone connecté
|
||
flutter run
|
||
|
||
# Ou spécifier l'appareil
|
||
flutter run -d [DEVICE_ID]
|
||
```
|
||
|
||
#### Lancer en mode Release
|
||
```bash
|
||
# Performance optimale
|
||
flutter run --release
|
||
|
||
# Avec l'ID de l'appareil
|
||
flutter run -d [DEVICE_ID] --release
|
||
```
|
||
|
||
### Test via WiFi (Xcode 9+)
|
||
|
||
#### Configuration WiFi
|
||
1. **iPhone et Mac** sur le même réseau WiFi
|
||
2. Dans **Xcode** : Window → Devices and Simulators
|
||
3. Sélectionner l'iPhone → Cocher "Connect via network"
|
||
4. Débrancher le câble USB
|
||
|
||
#### Lancer via WiFi
|
||
```bash
|
||
# L'appareil reste visible dans flutter devices
|
||
flutter run -d [DEVICE_ID]
|
||
```
|
||
|
||
---
|
||
|
||
## 🛠️ Build et Installation
|
||
|
||
### Créer l'Archive iOS
|
||
|
||
#### Build pour App Store Connect
|
||
```bash
|
||
# Nettoyer le projet
|
||
flutter clean
|
||
cd ios && pod install && cd ..
|
||
|
||
# Build release
|
||
flutter build ios --release
|
||
|
||
# Ou avec obfuscation
|
||
flutter build ios --release --obfuscate --split-debug-info=debug_info
|
||
```
|
||
|
||
#### Archive dans Xcode
|
||
1. Ouvrir `ios/Runner.xcworkspace` dans Xcode
|
||
2. Product → Scheme → Runner
|
||
3. Product → Destination → Any iOS Device
|
||
4. Product → Archive
|
||
5. Distribute App → Ad Hoc ou App Store
|
||
|
||
### Installation via TestFlight
|
||
|
||
#### Configuration TestFlight
|
||
1. Upload l'archive vers **App Store Connect**
|
||
2. Ajouter les testeurs (emails)
|
||
3. Les testeurs reçoivent une invitation
|
||
|
||
#### Installation sur iPhone
|
||
1. Installer l'app **TestFlight** depuis l'App Store
|
||
2. Accepter l'invitation (via email)
|
||
3. Installer l'app Geosector depuis TestFlight
|
||
|
||
---
|
||
|
||
## 📱 Simulateur iOS
|
||
|
||
### Lancer sur Simulateur
|
||
```bash
|
||
# Lister les simulateurs disponibles
|
||
flutter emulators
|
||
|
||
# Lancer un simulateur
|
||
flutter emulators --launch apple_ios_simulator
|
||
|
||
# Ou ouvrir via Xcode
|
||
open -a Simulator
|
||
|
||
# Lancer l'app sur le simulateur
|
||
flutter run
|
||
```
|
||
|
||
### Simulateurs Recommandés
|
||
- iPhone 15 Pro (dernier modèle)
|
||
- iPhone SE (petit écran)
|
||
- iPad Pro (tablette)
|
||
|
||
---
|
||
|
||
## 🔧 Commandes Utiles iOS
|
||
|
||
### Gestion des Certificats
|
||
```bash
|
||
# Vérifier les certificats
|
||
security find-identity -p codesigning -v
|
||
|
||
# Nettoyer le cache DerivedData
|
||
rm -rf ~/Library/Developer/Xcode/DerivedData
|
||
```
|
||
|
||
### Pods et Dépendances
|
||
```bash
|
||
# Mettre à jour les pods
|
||
cd ios
|
||
pod update
|
||
pod install --repo-update
|
||
|
||
# Nettoyer les pods
|
||
pod deintegrate
|
||
pod install
|
||
```
|
||
|
||
### Logs et Debug
|
||
```bash
|
||
# Voir les logs de l'iPhone
|
||
flutter logs
|
||
|
||
# Console Xcode pour logs détaillés
|
||
# Xcode → Window → Devices and Simulators → View Device Logs
|
||
|
||
# Logs système iOS
|
||
xcrun simctl spawn booted log stream --level debug
|
||
```
|
||
|
||
---
|
||
|
||
## 🐛 Résolution de Problèmes
|
||
|
||
### Erreur "Could not find Developer Disk Image"
|
||
```bash
|
||
# Mettre à jour Xcode pour supporter la version iOS
|
||
# Ou télécharger les Developer Disk Images
|
||
```
|
||
|
||
### Erreur de Signature
|
||
```bash
|
||
# Dans Xcode
|
||
# Runner → Build Settings → Code Signing Identity → Apple Development
|
||
# Runner → Signing & Capabilities → Automatically manage signing
|
||
```
|
||
|
||
### Erreur CocoaPods
|
||
```bash
|
||
cd ios
|
||
pod cache clean --all
|
||
rm -rf Pods
|
||
rm Podfile.lock
|
||
pod install
|
||
```
|
||
|
||
### Application Non Fiable
|
||
```
|
||
iPhone → Réglages → Général → VPN et gestion d'appareils
|
||
→ App du développeur → Faire confiance
|
||
```
|
||
|
||
---
|
||
|
||
## 🎯 Tests Spécifiques iOS
|
||
|
||
### Vérifications Visuelles
|
||
- [ ] **Safe Area** : Respect des encoches (notch)
|
||
- [ ] **Gestes iOS** : Swipe pour retour arrière
|
||
- [ ] **Dark Mode** : Adaptation au thème système
|
||
- [ ] **Dynamic Type** : Respect des tailles de texte système
|
||
|
||
### Permissions iOS
|
||
- [ ] **Localisation** : Demande d'autorisation
|
||
- [ ] **Notifications** : Permission push (si applicable)
|
||
- [ ] **Caméra** : Accès pour scan (si applicable)
|
||
|
||
### Performance
|
||
- [ ] **Démarrage** : Temps de lancement < 2s
|
||
- [ ] **Animations** : 60 FPS constant
|
||
- [ ] **Mémoire** : Pas de fuites (Instruments)
|
||
- [ ] **Batterie** : Consommation raisonnable
|
||
|
||
---
|
||
|
||
## 🔄 Alternatives sans Mac
|
||
|
||
### 1. Codemagic CI/CD
|
||
```yaml
|
||
# codemagic.yaml
|
||
workflows:
|
||
ios-workflow:
|
||
name: iOS Build
|
||
environment:
|
||
xcode: latest
|
||
scripts:
|
||
- flutter build ios --release
|
||
```
|
||
|
||
### 2. GitHub Actions
|
||
```yaml
|
||
# .github/workflows/ios.yml
|
||
runs-on: macos-latest
|
||
steps:
|
||
- uses: actions/checkout@v2
|
||
- uses: subosito/flutter-action@v2
|
||
- run: flutter build ios --release --no-codesign
|
||
```
|
||
|
||
### 3. Services Cloud
|
||
- **MacinCloud** : Location de Mac virtuel
|
||
- **MacStadium** : Mac en cloud
|
||
- **AWS EC2 Mac** : Instances Mac sur AWS
|
||
|
||
### 4. Hackintosh (Non Recommandé)
|
||
⚠️ **Risques** :
|
||
- Violation des conditions Apple
|
||
- Instabilité système
|
||
- Pas de support officiel
|
||
|
||
---
|
||
|
||
## 📋 Checklist Pré-Release iOS
|
||
|
||
### Configuration
|
||
- [ ] Bundle ID unique configuré
|
||
- [ ] Icônes de l'app (toutes tailles)
|
||
- [ ] Launch Screen configuré
|
||
- [ ] Info.plist à jour
|
||
- [ ] Permissions déclarées
|
||
|
||
### Tests
|
||
- [ ] Test sur iPhone réel
|
||
- [ ] Test sur iPad (si supporté)
|
||
- [ ] Test iOS minimum (12.0)
|
||
- [ ] Test iOS récent (17.x)
|
||
- [ ] Test mode avion
|
||
|
||
### App Store
|
||
- [ ] Screenshots (toutes tailles)
|
||
- [ ] Description de l'app
|
||
- [ ] Mots-clés optimisés
|
||
- [ ] Catégorie appropriée
|
||
- [ ] Politique de confidentialité
|
||
|
||
---
|
||
|
||
## 💡 Tips iOS
|
||
|
||
1. **Provisioning Profile** : Renouveler tous les ans
|
||
2. **TestFlight** : Builds expirent après 90 jours
|
||
3. **App Store Review** : Prévoir 24-48h de délai
|
||
4. **Crash Reports** : Utiliser Crashlytics ou Sentry
|
||
5. **Push Notifications** : Nécessite certificat APNS
|
||
|
||
---
|
||
|
||
## 📊 Commandes Rapides
|
||
|
||
```bash
|
||
# Session de test typique sur Mac
|
||
flutter clean
|
||
cd ios && pod install && cd ..
|
||
flutter devices
|
||
flutter run -d [iPhone_ID]
|
||
|
||
# Build pour distribution
|
||
flutter build ios --release
|
||
open ios/Runner.xcworkspace
|
||
# Product → Archive dans Xcode
|
||
```
|
||
|
||
---
|
||
|
||
## 🆘 Support
|
||
|
||
- **Documentation Flutter iOS** : https://flutter.dev/docs/deployment/ios
|
||
- **Apple Developer** : https://developer.apple.com
|
||
- **Forums Flutter** : https://github.com/flutter/flutter/issues
|
||
|
||
---
|
||
|
||
*Guide créé pour Geosector v3.0.6 - Flutter 3.32+ - iOS 12.0+*
|
||
|
||
**Note importante** : Ce guide nécessite un Mac pour la compilation et le déploiement iOS. Pour tester depuis Linux/Windows, utilisez les services cloud ou CI/CD mentionnés. |