使用帐户属性查询IOS Keychain?

时间:2018-04-10 22:08:23

标签: ios swift keychain

您好我正在尝试在没有kSecAttrAccountValue属性且仅使用kSecAttrServiceValue的情况下查询我的项目的keychain。这可能吗?状态为0然而,响应为零。我尝试添加一个帐户,效果很好!但是,我的目标是在没有它的情况下获得结果,或者将所有结果存储在同一服务中。请让我知道,谢谢!

参考: Save and Load from KeyChain | Swift

代码:

let keychainQuery: NSMutableDictionary = NSMutableDictionary(objects: [kSecClassGenericPasswordValue, service, kCFBooleanTrue, kSecMatchLimitOneValue], forKeys: [kSecClassValue, kSecAttrServiceValue, kSecReturnDataValue, kSecMatchLimitValue])

        var dataTypeRef :AnyObject?

        // Search for the keychain items
        let status: OSStatus = SecItemCopyMatching(keychainQuery, &dataTypeRef)
        var contentsOfKeychain: String?

        if status == errSecSuccess {
            if let retrievedData = dataTypeRef as? Data {
                contentsOfKeychain = String(data: retrievedData, encoding: String.Encoding.utf8)
            }
        } else {
            print("Nothing was retrieved from the keychain. Status code \(status)")
        }

        return contentsOfKeychain

1 个答案:

答案 0 :(得分:1)

KeychainAccess使用钥匙串更加简单:

// Create keychain object
let keychain = Keychain(service: "com.company.AppName")

// Store value in keychain
keychain["password"] = "test"

// Retrieve value from keychain
let password = keychain["password"]