KeychainAccess Swift : guide complet avec exemples

Formateur Python en ligne pour débutants

Apprenez Python facilement sans surcharge théorique. Résolvez des tâches pratiques avec vérification automatique et écrivez du code directement dans le navigateur.

Start Course

Qu'est-ce que KeychainAccess et pourquoi l'utiliser ?

KeychainAccess est une bibliothèque Swift légère mais puissante qui offre une interface pratique et type-safe pour interagir avec les Keychain Services d'Apple. Le Keychain est un coffre-fort sécurisé intégré à iOS, macOS, watchOS et tvOS, conçu pour stocker des données sensibles : mots de passe, clés de chiffrement, jetons d'authentification, numéros de cartes bancaires et toute autre information confidentielle.

Sans bibliothèque, travailler avec le Keychain via l'interface C native (fonctions SecItemAdd, SecItemCopyMatching, SecItemUpdate, SecItemDelete) est très lourd, nécessite beaucoup de code répétitif et est sujet aux erreurs. KeychainAccess résout ce problème en proposant :

  • Une syntaxe Swift simple : utilisation via des propriétés (get/set) et des méthodes aux noms explicites.
  • La sécurité de type : les données sont automatiquement converties en String, Data ou en types personnalisés conformes à Codable.
  • Une grande flexibilité : prise en charge de différents niveaux d'accès (accessible quand l'application est active, après déverrouillage de l'appareil, avec biométrie), groupes Keychain et synchronisation iCloud.
  • La sécurité par défaut : la bibliothèque applique les meilleures pratiques de sécurité recommandées par Apple.

Cette bibliothèque est idéale pour stocker des jetons OAuth, mots de passe utilisateur, clés API, phrases de récupération de portefeuilles crypto et toute autre donnée qui ne doit pas être conservée en clair dans UserDefaults ou le système de fichiers.

Installation de KeychainAccess

KeychainAccess ne s'installe pas via pip (Python) ou npm (JavaScript). C'est une bibliothèque native pour l'écosystème Apple. Voici les principales méthodes d'installation :

1. Swift Package Manager (SPM) — Méthode recommandée

Dans Xcode : File → Add Packages... → collez l'URL du dépôt :

https://github.com/kishikawakatsumi/KeychainAccess.git

Choisissez la version (généralement "Up to Next Major" avec la dernière version stable) et ajoutez le paquet à votre cible.

Ou ajoutez la dépendance dans votre fichier Package.swift :

// swift-tools-version:5.7
import PackageDescription

let package = Package(
    name: "MonPackage",
    dependencies: [
        .package(url: "https://github.com/kishikawakatsumi/KeychainAccess.git", from: "4.2.2")
    ],
    targets: [
        .target(
            name: "MonPackage",
            dependencies: ["KeychainAccess"]),
    ]
)

2. CocoaPods

Ajoutez cette ligne à votre Podfile :

pod 'KeychainAccess'

Exécutez ensuite pod install.

3. Carthage

Ajoutez dans votre Cartfile :

github "kishikawakatsumi/KeychainAccess"

Exécutez carthage update puis ajoutez le framework à votre projet.

Démarrage rapide avec KeychainAccess

Après l'installation, importez la bibliothèque : import KeychainAccess

L'exemple le plus simple : sauvegarder et lire une chaîne de caractères :

import KeychainAccess

// Créez une instance pour interagir avec le Keychain de l'application
let keychain = Keychain(service: "com.example.monapp")

// Sauvegarder une valeur
try keychain.set("mon_mot_de_passe_secret", key: "mot_de_passe_utilisateur")

// Lire une valeur
if let motDePasse = try keychain.get("mot_de_passe_utilisateur") {
    print("Mot de passe trouvé : \(motDePasse)")
} else {
    print("Mot de passe introuvable")
}

// Supprimer une valeur
try keychain.remove("mot_de_passe_utilisateur")

Ce code effectue les trois opérations principales : écriture, lecture et suppression. Notez la gestion des erreurs avec try — les opérations sur le Keychain peuvent lever des exceptions (par exemple, en cas de problèmes d'accès ou de permissions insuffisantes).

Méthodes et fonctions principales de KeychainAccess

Examinons

Recommendations