确认使用的是SecItem.h中定义的KEY, 声明如此
KeychainItemWrapper keychain = [[KeychainItemWrapper alloc] initWithIdentifier:@"MerchantAccountNumber"
accessGroup:@"com.tr-gr.Merchant"];
[wrapper setObject:self.IDFV forKey:(__bridge id)kSecAttrDescription];
问题是:如果选用 iPhone retina(4-inch 64bit) 编译运行都OK, 但选用iPhone retina(3.5-inch) 或者 iPhone retina(4-inch) 编译通过, 运行时报错如下:
*** Assertion failure in -[KeychainItemWrapper writeToKeychain], /
KeychainItemWrapper.m:354
2014-02-18 09:59:39.364 Merchant[1517:a0b] *** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Couldn't add the Keychain Item.'
问题解决, KeyChain内部以kSecAttrAccount 与kSecAttrService作为唯一钥匙串标识,
传送门 http://stackoverflow.com/questions/4891562/ios-keychain-services-only-specific-values-allowed-for-ksecattrgeneric-key
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。