gpt4 book ai didi

ios - 指定访问组时出现 KeychainItemWrapper 错误

转载 作者:可可西里 更新时间:2023-11-01 17:17:15 28 4
gpt4 key购买 nike

很长一段时间以来,我一直在使用 KeychainItemWrapper 的 ARC 版本成功地读写私有(private)钥匙串(keychain)项目。

我现在正在努力将我的 iOS 应用程序转换为使用共享访问组,以便我的 2 个共享相同应用程序前缀的应用程序可以访问钥匙串(keychain)项目。在功能部分,我添加了钥匙串(keychain)组“MYAPPPREFIX.MYSHAREDACCESSNAME”

我正在使用这些行将我的变量写入钥匙串(keychain)组:

keychainItemWrapper = [[KeychainItemWrapper alloc] initWithIdentifier:key accessGroup:@"MYAPPPREFIX.MYSHAREDACCESSNAME"];
[keychainItemWrapper setObject:value forKey:(__bridge id)(kSecAttrAccount)]; // store the new value in the keychain

如果将 accessGroup 指定为 nil,则效果很好。但是,如果我指定访问组,我会在调试器日志中遇到崩溃并显示以下错误:

断言失败 -[KeychainItemWrapper writeToKeychain], ..../KeychainItemWrapper.m:329由于未捕获的异常“NSInternalInconsistencyException”而终止应用程序,原因:“无法添加钥匙串(keychain)项。”

生成的 OSStatus 错误代码是 -25243,我无法找到更多信息。

为了写入共享访问组,我可能还需要做些什么吗?

最佳答案

为了帮助其他人,我能够确定问题所在。在 Xcode 'Capabilities' 中,我需要省略应用程序 ID 前缀。但是,在识别访问组时需要包含app id前缀。

因此,在功能中,我将一个组命名为“myAccessGroup”。

在我的代码中,我包含这样的前缀:

keychainItemWrapper = [[KeychainItemWrapper alloc] initWithIdentifier:key accessGroup:@"xxxxxxxx.myAccessGroup"];

关于ios - 指定访问组时出现 KeychainItemWrapper 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26286897/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com