SamkeyChain ist ein einfacher Wrapper zum Zugriff auf Konten, das Abrufen von Kennwörtern, das Einstellen von Kennwörtern und das Löschen von Kennwörtern mithilfe der Keychain von Systems in Mac OS X und iOS.
Fügen Sie einfach Folgendes zu Ihrem Podfile hinzu, wenn Sie Cocoapods verwenden:
pod 'SAMKeychain'oder Cartfile, wenn Sie Carthago verwenden:
github "soffes/SAMKeychain"
Um Ihr Projekt manuell hinzuzufügen:
Security.framework hinzuSAMKeychain.h , SAMKeychain.m , SAMKeychainQuery.h und SAMKeychainQuery.m hinzu.Samkeychain benötigt ARC.
Hinweis: Derzeit unterstützt Samkeychain Mac OS 10.6 nicht.
Samkeychain verfügt über die folgenden Klassenmethoden für die Arbeit mit dem Systemschlüsselketten:
+ ( 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;Einfach so. (Siehe Samkeychain.h und SamkeychainQuery.h für alle Methoden.)
Lesen Sie die Online -Dokumentation.
Wenn Sie im Schlüsselbund einsparen, verwenden Sie das NSError -Objekt, um es zu handhaben. Sie können [error code] aufrufen, um den numerischen Fehlercode zu erhalten. Einige Werte sind in Samkeychain.h und dem Rest in Secbase.h definiert.
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 ]);
} Offensichtlich sollten Sie etwas anspruchsvolleres tun. Sie können einfach [error localizedDescription] aufrufen, wenn Sie nur die Fehlermeldung benötigen.
Die Arbeit mit dem Schlüsselbund ist ziemlich saud. Sie sollten wirklich auf Fehler und Fehler suchen. Diese Bibliothek macht sie nicht stabiler, sondern beendet nur alle nervigen C -APIs.
Sie sollten auch den Standardeinstellungen nicht verwenden, sondern den accessibilityType festlegen. kSecAttrAccessibleWhenUnlocked sollte für die meisten Anwendungen funktionieren. Siehe Apple -Dokumentation für andere Optionen.
Dies wurde ursprünglich von Emkeychain und Sdkeychain inspiriert (die beide jetzt weg sind). Vielen Dank an die Autoren. SamkeyChain hat seitdem zu einer einfacheren Implementierung gewechselt, die von Sstoolkit abstrahiert wurde.
Ein großes Dankeschön an Caleb Davenport für die Führung auf Version 1.0 von Samkeychain.