同賬號下共享Keychain 可以用來共享賬號密碼,也可以用來共享信息,可以方便追蹤數據,也方便用户便捷使用應用。
實現共享Keychain需要按以下步驟:
1、首先在工程中Signing&Capabilities選項中,點擊左上角+號 增加 Keychain Sharing,增加後,展開Keychain Sharing,命名一個Keychain Group,
類似 com.xxxxx.uniqueid
同時工程中增加宏定義
#define xxxKeychainSharingGroup @"xxxxx(團隊ID).com.xxxxx.uniqueid"
2、增加KeychainItemWrapper類到工程中,併為文件在Build Phases中增加
Compiler Flags = -fno-objc-arc
3、KeychainItemWrapper 的使用
// Designated initializer.
- (id)initWithIdentifier: (NSString *)identifier accessGroup:(NSString *) accessGroup;
- (void)setObject:(id)inObject forKey:(id)key;
- (id)objectForKey:(id)key;
// Initializes and resets the default generic keychain item data.
- (void)resetKeychainItem;
定義一個identifier 來標記Keychain 並將之前定義的xxxKeychainSharingGroup傳入accessGroup來初始化
然後就可以按照字典讀取的方式,寫入讀取Keychain了
//初始化
KeychainItemWrapper *wrapper = [[KeychainItemWrapper alloc] initWithIdentifier:@”Password” accessGroup:xxxKeychainSharingGroup];
//存儲
[wrapper setObject:@{@"password":@"xxxxx"}forKey:(__bridge id)kSecValueData];
//讀取
[wrapper objectForKey:(__bridge id)kSecValueData];
按照同樣的方法再另外一個app上註冊,就可以共享Keychain了