我正在为我的应用程序创建不需要的通讯扩展,但是当我尝试访问钥匙串以获取登录详细信息时,它无法访问钥匙串。
注意:添加了具有钥匙串共享的权利,并且为我的应用程序启用了钥匙串共享。
我尝试在扩展视图控制器上使用此代码,但它在-25291
上返回了错误代码SecItemCopyMatching
let queryLoad: [String: AnyObject] = [
kSecClass as String: kSecClassGenericPassword,
kSecAttrAccount as String: itemKey as AnyObject,
kSecReturnData as String: kCFBooleanTrue,
kSecMatchLimit as String: kSecMatchLimitOne,
kSecAttrAccessGroup as String: keychainAccessGroupName as AnyObject
]
var result: AnyObject?
let resultCodeLoad = withUnsafeMutablePointer(to: &result) {
SecItemCopyMatching(queryLoad as CFDictionary, UnsafeMutablePointer($0))
}
if resultCodeLoad == noErr {
if let result = result as? Data,
let keyValue = NSString(data: result,
encoding: String.Encoding.utf8.rawValue) as? String {
// Found successfully
print(keyValue)
}
} else {
print("Error loading from Keychain: \(resultCodeLoad)")
}