SamkeyChain est un simple wrapper pour accéder aux comptes, obtenir des mots de passe, définir des mots de passe et supprimer des mots de passe à l'aide du clés du système sur Mac OS X et iOS.
Ajoutez simplement ce qui suit à votre podfile si vous utilisez des cocoapodes:
pod 'SAMKeychain'ou cartafile si vous utilisez Carthage:
github "soffes/SAMKeychain"
Pour ajouter manuellement à votre projet:
Security.framework à votre cibleSAMKeychain.h , SAMKeychain.m , SAMKeychainQuery.h et SAMKeychainQuery.m à votre projet.Samkeychain a besoin d'arc.
Remarque: Actuellement, SamkeyChain ne prend pas en charge Mac OS 10.6.
Samkeychain propose les méthodes de classe suivantes pour travailler avec le trousseau système:
+ ( NSArray *)allAccounts;
+ ( NSArray *)accountsForService:( NSString *)serviceName;
+ ( NSString *)passwordForService:( NSString *)serviceName account:( NSString *)account;
+ ( BOOL )deletePasswordForService:( NSString *)serviceName account:( NSString *)account;
+ ( void )setAccessibilityType:( CFTypeRef )accessibilityType;
+ ( BOOL )setPassword:( NSString *)password forService:( NSString *)serviceName account:( NSString *)account;Aussi facile que ça. (Voir samkeychain.h et samkeychainquery.h pour toutes les méthodes.)
Lisez la documentation en ligne.
Si votre sauvegarde sur le trousseau échoue, utilisez l'objet NSerror pour le gérer. Vous pouvez invoquer [error code] pour obtenir le code d'erreur numérique. Quelques valeurs sont définies dans samkeychain.h, et le reste dans Secbase.h.
NSError *error = nil ;
SAMKeychainQuery *query = [[SAMKeychainQuery alloc ] init ];
query.service = @" MyService " ;
query.account = @" soffes " ;
[query fetch: &error];
if ([error code ] == errSecItemNotFound) {
NSLog ( @" Password not found " );
} else if (error != nil ) {
NSLog ( @" Some other error occurred: %@ " , [error localizedDescription ]);
} De toute évidence, vous devriez faire quelque chose de plus sophistiqué. Vous pouvez simplement appeler [error localizedDescription] si tout ce dont vous avez besoin est le message d'erreur.
Travailler avec le trousseau est assez nul. Vous devriez vraiment vérifier les erreurs et les échecs. Cette bibliothèque ne le rend pas plus stable, il conclut simplement toutes les API C ennuyeuses.
Vous ne devez pas non plus utiliser la valeur par défaut, mais définir le accessibilityType . kSecAttrAccessibleWhenUnlocked ce qui devrait fonctionner pour la plupart des applications. Voir la documentation Apple pour d'autres options.
Cela a été à l'origine inspiré par Emkeychain et Sdkeychain (qui sont maintenant partis). Merci aux auteurs. Samkeychain est depuis passé à une implémentation plus simple qui a été abstraite de Sstoolkit.
Un grand merci à Caleb Davenport pour avoir ouvert la voie à la version 1.0 de Samkeychain.