feat: Implémentation authentification NIST SP 800-63B v3.0.8
- 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>
This commit is contained in:
385
app/tests-iphone.md
Normal file
385
app/tests-iphone.md
Normal file
@@ -0,0 +1,385 @@
|
||||
# 📱 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.
|
||||
Reference in New Issue
Block a user