同账号下共享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了
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。