首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >KeychainItemWrapper in iOS6

KeychainItemWrapper in iOS6
EN

Stack Overflow用户
提问于 2014-09-02 07:47:51
回答 1查看 383关注 0票数 0

我在我的应用项目中使用KeyChainItemWeapper.m来保存昵称和密码。在iOS7中工作得很好,但在iOS 6.0中,它会崩溃。错误是:

代码语言:javascript
运行
复制
*** Assertion failure in -[KeychainItemWrapper writeToKeychain], /Users/KeychainItemWrapper.m:328
*** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Couldn't add the Keychain Item.'
*** First throw call stack:
(0x1ea2012 0x1c5ae7e 0x1ea1e78 0x1919665 0xe785a 0xe6bf0 0x1479b6 0x14848f 0x11bb0bc 0x1c6e705 0xdcb2c0 0xdcb258 0xe8c021 0xe8c57f 0xe8b6e8 0xdfacef 0xdfaf02 0xdd8d4a 0xdca698 0x2f77df9 0x2f77ad0 0x1e17bf5 0x1e17962 0x1e48bb6 0x1e47f44 0x1e47e1b 0x2f767e3 0x2f76668 0xdc7ffc 0x15270d 0x356d725 0x1)
libc++abi.dylib: terminate called throwing an exception

这段代码出现在应用程序崩溃上:

代码语言:javascript
运行
复制
KeychainItemWrapper *keychain = [[KeychainItemWrapper alloc] initWithIdentifier:@"100PrimerosLogin" accessGroup:nil];
[keychain setObject:disp_pasa.token forKey:(__bridge id)(kSecValueData)];
[keychain setObject:nick forKey:(__bridge id)(kSecAttrAccount)];
[keychain setObject:(__bridge id)(kSecClassGenericPassword) forKey:(__bridge id)kSecClass];
[keychain setObject:(__bridge id)kSecAttrAccessibleAlwaysThisDeviceOnly forKey:(__bridge id)kSecAttrAccessible];

这个昵称是iphone和密码--一种字母数字代码。

谢谢你提前给我。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-09-02 07:56:46

当您需要在密钥链中保存Auth令牌时,然后保存kSecAttrService键的值:例如:

代码语言:javascript
运行
复制
[keychain setObject:@"YourAppNameDecription" forKey: (__bridge id)kSecAttrService];

在保存令牌和其他字段时,也在密钥链中添加上述值。

这将解决您的崩溃问题。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25618369

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档