我们可以访问在共享同一应用组的应用启用钥匙串共享之前保存的钥匙串项目吗?

Posted

技术标签:

【中文标题】我们可以访问在共享同一应用组的应用启用钥匙串共享之前保存的钥匙串项目吗?【英文标题】:Can we access keychain items that are saved before enabling keychain sharing from app sharing same app group? 【发布时间】:2017-10-25 13:45:18 【问题描述】:

我们能否访问在共享同一应用组的应用启用钥匙串共享之前保存的钥匙串项目?如果否,那么最好的解决方法是什么?

【问题讨论】:

【参考方案1】:

开启keychain共享所有keychain项前“accessGroup”为(AppIdentifierPrefix).bundleIdentifier,开启后改为(AppIdentifierPrefix).keyChainGroupName。

解决方法是通过钥匙串访问所有钥匙串项目。

AWSUICKeyChainStore *keychain = [AWSUICKeyChainStore keyChainStoreWithService:@"ServiceName"];
for (NSDictionary *dictionary in keychain.allItems)
    if ([dictionary[@"accessGroup"] isEqualToString:"(AppIdentifierPrefix).bundleIdentifier"])
        [keychain removeItemForKey:dictionary[@"key"]];

【讨论】:

以上是关于我们可以访问在共享同一应用组的应用启用钥匙串共享之前保存的钥匙串项目吗?的主要内容,如果未能解决你的问题,请参考以下文章

iOS 钥匙串在设备之间共享数据

将钥匙串共享添加到已有用户的生产应用程序

启用钥匙串共享会改变您的 AppID 吗?

如何在我的应用程序中使用 iCloud 钥匙串在不同设备的安装之间共享价值?

未设置访问组时共享的钥匙串项目

NSSecureCoding 与钥匙串