يعد SamkeyChain غلافًا بسيطًا للوصول إلى الحسابات ، والحصول على كلمات المرور ، وإعداد كلمات المرور ، وحذف كلمات المرور باستخدام سلسلة مفاتيح النظام على Mac OS X و IOS.
ما عليك سوى إضافة ما يلي إلى podfile إذا كنت تستخدم Cocoapods:
pod 'SAMKeychain'أو Cartfile إذا كنت تستخدم قرطاج:
github "soffes/SAMKeychain"
للإضافة يدويًا إلى مشروعك:
Security.frameworkSAMKeychain.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] إذا كان كل ما تحتاجه هو رسالة الخطأ.
العمل مع سلسلة المفاتيح هو جدا. يجب عليك حقًا التحقق من وجود أخطاء وفشل. هذه المكتبة لا تجعلها أكثر استقرارًا ، إنها تختتم كل واجهات برمجة التطبيقات C المزعجة.
لا ينبغي عليك أيضًا استخدام الافتراضي ولكن يمكنك ضبط accessibilityType . يجب أن تعمل kSecAttrAccessibleWhenUnlocked في معظم التطبيقات. راجع وثائق Apple للحصول على خيارات أخرى.
كان هذا مستوحى في الأصل من Emkeychain و Sdkeychain (وكلاهما ذهب الآن). شكرا للمؤلفين. انتقلت Samkeychain منذ ذلك الحين إلى تطبيق أبسط تم استخلاصه من Sstoolkit.
شكر كبير لكاليب دافنبورت لقيادة الطريق في الإصدار 1.0 من Samkeychain.