SamkeyChain - это простая обертка для доступа к учетным записям, получению паролей, настройки паролей и удалению паролей с использованием системной ключей на Mac OS X и iOS.
Просто добавьте следующее в свой Podfile, если вы используете кокопод:
pod 'SAMKeychain'или cartfile, если вы используете Карфаген:
github "soffes/SAMKeychain"
Чтобы вручную добавить в свой проект:
Security.framework к вашей целиSAMKeychain.h , SAMKeychain.m , SAMKeychainQuery.h и SAMKeychainQuery.m в ваш проект.SamkeyChain требует дуги.
Примечание. В настоящее время SamkeyChain не поддерживает Mac OS 10.6.
SamkeyChain имеет следующие методы класса для работы с системным ключом:
+ ( 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;Как бы то ни было. (См. Samkeychain.H и SamkeyChainquery.h для всех методов.)
Прочитайте онлайн -документацию.
Если вы не выполняете сохранение на ключевой матче, используйте объект NSError, чтобы справиться с ним. Вы можете вызвать [error code] , чтобы получить числовой код ошибки. Несколько значений определены в SamkeyChain.h, а остальные в 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 ]);
} Очевидно, вы должны сделать что -то более изощренное. Вы можете просто позвонить [error localizedDescription] если все, что вам нужно, это сообщение об ошибке.
Работа с ключом довольно отстойна. Вы должны действительно проверить наличие ошибок и сбоев. Эта библиотека не делает его более стабильной, она просто завершает все раздражающие CAP.
Вы также действительно не должны использовать по умолчанию, но устанавливайте accessibilityType . kSecAttrAccessibleWhenUnlocked должен работать для большинства приложений. Смотрите документацию Apple для других вариантов.
Первоначально это было вдохновлено EmkeyChain и SdkeyChain (оба из которых сейчас ушли). Спасибо авторам. С тех пор SamkeyChain переключился на более простую реализацию, которая была абстрагирована от Sstoolkit.
Огромная благодарность Калебу Давенпорту за то, что он возглавил путь на версии 1.0 Samkeychain.