此时我觉得我已经阅读了有关此错误的所有内容。每个stackoverflow都会在过去一个月内打开和关闭主题。我正在围绕错误开发,解决其他问题,并在我有新想法时回到这个问题。我虽然无法解决它。
它无法一致地重新创建,它完全随机发生。可能有5%的时间。在那5%的时间里,我无法写入钥匙串。我已经使用了SSKeychain(https://github.com/soffes/sskeychain)和UICKeychainStore(https://github.com/kishikawakatsumi/UICKeyChainStore)。无论我使用哪个,我都会遇到问题。
一些细节:
我在Keychain中存储了3个不同的密钥。 1)我的服务器的用户密码令牌2)我的服务器“用户”对象的JSON字符串表示和3)IAP内容的JSON字符串表示(当IAP通过时,但我的服务器无法提供刚刚购买的IAP内容)。
我通过以下方式存储它们......
UICKeyChainStore *keychain = [UICKeyChainStore keyChainStoreWithService:kKeychainService];
result = [keychain setString:jsonString forKey:kKeychainUser];
尽管有其他答案,但这不仅仅是在连接到xcode / debugging时发生的。当我在我的设备上使用我的应用程序时,它也会发生,没有任何连接。防止我释放它。
我为UICKeyChainStore -keyChainStoreWithService
使用相同的字符串。然后我有3个独特的字符串,用于我存储的3件事。令牌,用户和内容。
我正在调用主线程上的所有KeyChain调用。没有人在后台主题上。
我非常渴望找到解决方案。我可以自己加密这些,并将它们存储在NSUserDefaults中,因为我现在不能依赖Keychain。