Samkeychain เป็น wrapper ง่าย ๆ สำหรับการเข้าถึงบัญชีรับรหัสผ่านการตั้งค่ารหัสผ่านและการลบรหัสผ่านโดยใช้พวงกุญแจระบบบน Mac OS X และ iOS
เพียงเพิ่มสิ่งต่อไปนี้ลงใน PodFile ของคุณหากคุณใช้ cocoapods:
pod 'SAMKeychain'หรือ cartfile ถ้าคุณใช้ Carthage:
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] หากสิ่งที่คุณต้องการคือข้อความแสดงข้อผิดพลาด
การทำงานกับพวงกุญแจนั้นค่อนข้างน่ารัก คุณควรตรวจสอบข้อผิดพลาดและความล้มเหลวจริงๆ ห้องสมุดนี้ไม่ได้ทำให้มีเสถียรภาพอีกต่อไปมันเพิ่งปิด APIs C ที่น่ารำคาญทั้งหมด
คุณไม่ควรใช้ค่าเริ่มต้น แต่ตั้งค่า accessibilityType kSecAttrAccessibleWhenUnlocked ใช้งานได้ควรทำงานสำหรับแอปพลิเคชันส่วนใหญ่ ดูเอกสารประกอบของ Apple สำหรับตัวเลือกอื่น ๆ
นี่คือแรงบันดาลใจจาก Emkeychain และ Sdkeychain (ทั้งสองอย่างตอนนี้หายไป) ขอบคุณผู้เขียน Samkeychain ได้เปลี่ยนไปใช้การใช้งานที่ง่ายกว่าซึ่งถูกแยกออกจาก Sstoolkit
ขอขอบคุณ Caleb Davenport ที่เป็นผู้นำในการเดินทางใน Samkeychain เวอร์ชัน 1.0