Joh*_*ohn 8 objective-c keychain ios8
我一直在围绕Apple论坛挖掘这个问题无济于事.使用Apple的KeychainItemWrapper(ARCified),尝试将kSecAttrAccessible属性设置为除default(kSecAttrAccessibleWhenUnlocked)之外的任何内容会导致SecItemUpdate返回错误的断言失败.
KeychainItemWrapper *wrapper = [[KeyChainItemWrapper alloc] initWithIdentifier:kMyIdentifier accessGroup:nil];
[wrapper setObject:kMyServiceName forKey:(__bridge NSString*)kSecAttrService];
[wrapper setObject:kMyAccountToken forKey:(__bridge NSString*)kSecAttrAccount];
[wrapper setObject:(__bridge NSString*)kSecAttrAccessibleAfterFirstUnlockThisDeviceOnly forKey:(__bridge NSString*)kSecAttrAccessible];
Run Code Online (Sandbox Code Playgroud)
其余的钥匙串更新似乎正常,但最后一行导致:
*** Assertion failure in -[KeychainItemWrapper writeToKeychain], /Users/john.hammerlund/.../KeychainItemWrapper.m:299
Run Code Online (Sandbox Code Playgroud)
断言失败是由于SecItemUpdate()返回-50的状态,这似乎是一个通用的"无效参数"错误.
立即设置kSecAttrAccessible密钥没有任何影响,但将其设置为默认值可以kSecAttrAccessibleWhenUnlocked缓解问题(但消除了这一点). 另一个问题是我发现的与iOS 8有关的唯一其他信息导致KeychainItemWrapper崩溃.在iOS 7/8上构建iOS 7或模拟器的设备消除了这个问题; 它只是在使用iOS 8的真实设备上迸发出来.
更新
以下是查询字典的概述:
{
accc = "<SecAccessControlRef: 0x1687cc70>";
acct = ...;
agrp = ...;
cdat = "2014-10-13 22:22:47 +0000";
desc = "";
gena = ...;
labl = "";
mdat = "2014-10-13 22:34:16 +0000";
pdmn = cku; <-- kSecAttrAccessibleAfterFirstUnlockThisDeviceOnly
svce = ...;
sync = 0;
tomb = 0;
"v_Data" = <>;
}
和attributesToUpdate参数:
{
accc = "<SecAccessControlRef: 0x1687cc70>";
acct = ...;
agrp = ...;
cdat = "2014-10-13 22:22:47 +0000";
desc = "";
gena = ...;
labl = "";
mdat = "2014-10-13 22:34:16 +0000";
pdmn = ak; <-- kSecAttrAccessibleWhenUnlocked
svce = ...;
sync = 0;
tomb = 0;
"v_Data" = <>;
}
我已经确认更改其他字段(即kSecAttrService,kSecAttrAccount)对字典中的相应字段具有相同的效果,但预期状态为0.
小智 2
我也遇到了确切的问题。给我:
OSStatus 错误 -50 - kSecAccess 和 kSecAccessControl 属性冲突
我的所有用户在应用商店更新后就崩溃了。
和彼得做了同样的事。抓取数据,删除该项目并将其作为新项目插入,而不是尝试更新现有项目。
我猜这是苹果的一个错误。
我开了一个 TSI,但他们还没有联系我。
据我了解,从 iOS7 更新到 iOS 8 的用户会发生这种情况,他们的第一个应用程序是使用 iOS7 的 XCode 编译的(在 iOS 8 发布之前),然后在 iOS8 上更新到使用 XCode 编译到 iOS8 的新应用程序。
| 归档时间: |
|
| 查看次数: |
3343 次 |
| 最近记录: |