- 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>
8.2 KiB
8.2 KiB
📱 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
# Via App Store ou ligne de commande
xcode-select --install
# Accepter la licence Xcode
sudo xcodebuild -license accept
Vérifier Flutter pour iOS
# Vérifier la configuration iOS
flutter doctor
# Résoudre les problèmes iOS si nécessaire
flutter doctor --verbose
Installer CocoaPods
# 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
# Depuis le dossier du projet Flutter
cd ios
open Runner.xcworkspace
Configuration dans Xcode
-
Sélectionner l'équipe de développement :
- Runner → Signing & Capabilities
- Team : Sélectionner votre Apple ID
- Bundle Identifier :
com.votredomaine.geosector
-
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
- Brancher l'iPhone au Mac
- Sur l'iPhone : "Faire confiance à cet ordinateur" → Faire confiance
- Entrer le code de déverrouillage
🚀 Lancer l'Application
Test via USB
Vérifier la connexion
# 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
# Lancer sur l'iPhone connecté
flutter run
# Ou spécifier l'appareil
flutter run -d [DEVICE_ID]
Lancer en mode Release
# Performance optimale
flutter run --release
# Avec l'ID de l'appareil
flutter run -d [DEVICE_ID] --release
Test via WiFi (Xcode 9+)
Configuration WiFi
- iPhone et Mac sur le même réseau WiFi
- Dans Xcode : Window → Devices and Simulators
- Sélectionner l'iPhone → Cocher "Connect via network"
- Débrancher le câble USB
Lancer via WiFi
# 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
# 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
- Ouvrir
ios/Runner.xcworkspacedans Xcode - Product → Scheme → Runner
- Product → Destination → Any iOS Device
- Product → Archive
- Distribute App → Ad Hoc ou App Store
Installation via TestFlight
Configuration TestFlight
- Upload l'archive vers App Store Connect
- Ajouter les testeurs (emails)
- Les testeurs reçoivent une invitation
Installation sur iPhone
- Installer l'app TestFlight depuis l'App Store
- Accepter l'invitation (via email)
- Installer l'app Geosector depuis TestFlight
📱 Simulateur iOS
Lancer sur Simulateur
# 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
# Vérifier les certificats
security find-identity -p codesigning -v
# Nettoyer le cache DerivedData
rm -rf ~/Library/Developer/Xcode/DerivedData
Pods et Dépendances
# Mettre à jour les pods
cd ios
pod update
pod install --repo-update
# Nettoyer les pods
pod deintegrate
pod install
Logs et Debug
# 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"
# Mettre à jour Xcode pour supporter la version iOS
# Ou télécharger les Developer Disk Images
Erreur de Signature
# Dans Xcode
# Runner → Build Settings → Code Signing Identity → Apple Development
# Runner → Signing & Capabilities → Automatically manage signing
Erreur CocoaPods
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
# codemagic.yaml
workflows:
ios-workflow:
name: iOS Build
environment:
xcode: latest
scripts:
- flutter build ios --release
2. GitHub Actions
# .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
- Provisioning Profile : Renouveler tous les ans
- TestFlight : Builds expirent après 90 jours
- App Store Review : Prévoir 24-48h de délai
- Crash Reports : Utiliser Crashlytics ou Sentry
- Push Notifications : Nécessite certificat APNS
📊 Commandes Rapides
# 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.