无法从不需要的通讯扩展iOS中访问钥匙串

时间:2018-11-13 03:32:31

标签: ios iphone swift ios12

我正在为我的应用程序创建不需要的通讯扩展,但是当我尝试访问钥匙串以获取登录详细信息时,它无法访问钥匙串。

注意:添加了具有钥匙串共享的权利,并且为我的应用程序启用了钥匙串共享。

我尝试在扩展视图控制器上使用此代码,但它在-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)")
}

0 个答案:

没有答案