SamkeyChain adalah pembungkus sederhana untuk mengakses akun, mendapatkan kata sandi, mengatur kata sandi, dan menghapus kata sandi menggunakan kunci sistem pada Mac OS X dan iOS.
Cukup tambahkan yang berikut ke podfile Anda jika Anda menggunakan cocoapods:
pod 'SAMKeychain'atau cartfile jika Anda menggunakan carthage:
github "soffes/SAMKeychain"
Untuk menambah proyek Anda secara manual:
Security.framework ke target AndaSAMKeychain.h , SAMKeychain.m , SAMKeychainQuery.h , dan SAMKeychainQuery.m ke proyek Anda.Samkeychain membutuhkan busur.
Catatan: Saat ini Samkeychain tidak mendukung Mac OS 10.6.
Samkeychain memiliki metode kelas berikut untuk bekerja dengan gantungan kunci sistem:
+ ( 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;Semudah itu. (Lihat samkeychain.h dan samkeychainquery.h untuk semua metode.)
Baca dokumentasi online.
Jika Anda menabung ke gantungan kunci gagal, gunakan objek NSError untuk menanganinya. Anda dapat meminta [error code] untuk mendapatkan kode kesalahan numerik. Beberapa nilai didefinisikan dalam samkeychain.h, dan sisanya di 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 ]);
} Jelas, Anda harus melakukan sesuatu yang lebih canggih. Anda hanya bisa menelepon [error localizedDescription] Jika yang Anda butuhkan hanyalah pesan kesalahan.
Bekerja dengan gantungan kunci cukup sial. Anda harus benar -benar memeriksa kesalahan dan kegagalan. Perpustakaan ini tidak membuatnya lebih stabil, itu hanya membungkus semua C API yang menjengkelkan.
Anda juga benar -benar tidak boleh menggunakan default tetapi atur accessibilityType . kSecAttrAccessibleWhenUnlocked harus bekerja untuk sebagian besar aplikasi. Lihat Dokumentasi Apple untuk opsi lain.
Ini awalnya terinspirasi oleh Emkeychain dan SDKeyChain (keduanya sekarang hilang). Terima kasih kepada penulis. Samkeychain sejak itu beralih ke implementasi yang lebih sederhana yang disusun dari Sstoolkit.
Terima kasih banyak kepada Caleb Davenport untuk memimpin Way pada versi 1.0 Samkeychain.