在swift和IOS 10崩溃时重置Keychain

NDM*_*DEV 1 keychain swift ios10 swift2.3

问题只发生在Xcode 8和IOS 10中.如果我使用XCode 8和IOS 9,它的工作正常.

func resetKeychain() {

    if !self.keychainItemData.isEmpty {
        let tempDict = self.dictToSecItemData(self.keychainItemData)
        var junk = noErr
        junk = SecItemDelete(tempDict as CFDictionary)

        assert(junk == noErr || junk == errSecItemNotFound, "Failed to delete current dict")
    }

    self.keychainItemData[kSecAttrAccount] = ""
    self.keychainItemData[kSecAttrLabel] = ""
    self.keychainItemData[kSecAttrDescription] = ""

    self.keychainItemData[kSecValueData] = ""
}
Run Code Online (Sandbox Code Playgroud)

断言总是在IOS 10中发生并且应用程序崩溃

有任何想法吗?

Dan*_*evy 6

在您的Xcode项目中,转到应用目标,然后转到功能.打开钥匙串共享.这应该够了吧!