我有一个用Swift 2.3编写的应用程序 . 该应用程序使用KeychainItemWrapper,使访问Keychain更简单 .

当我使用Xcode在iOS 9.3模拟器中运行应用程序时,应用程序按预期运行,并且读取/写入钥匙串没有问题 .

相同的应用程序,我的代码没有任何变化,与调用崩溃:

- (void)resetKeychainItem

随着线:

SecItemDelete((__bridge CFDictionaryRef)tempDictionary);

因此,使这个NSAssert给我我的错误:

NSAssert( junk == noErr || junk == errSecItemNotFound, @"Problem deleting current dictionary." );

通过代码34018研究此错误向我指出了其他帖子,其中用户遇到了钥匙串的错误,实际上引起了Apple的开发人员的注意 . 这是一个高优先级的错误,一篇帖子建议iOS 9.3修复此问题(我的应用程序适用于iOS 9.3!) .

但是,据我所知,Xcode 8处理的代码签名方式与以前的版本不同 . 所以我想知道如果这是一个可能的新bug,iOS 10 .

如果有人对iOS 10 / Xcode 8上的此错误有任何想法或经验,请分享您的建议 .