1 -*_*-_- 5 macos command-line swift
当我尝试使用命令行 Swift 应用程序中的参数将项目添加到 macOS 钥匙串时SecItemAdd(),kSecAttrSynchronizable出现错误-50 (One or more parameters passed to the function were not valid)。如果我删除它,它就能正常工作kSecAttrSynchronizable。我尝试过使用KeychainAccess,也尝试过手动执行(使用macOS提供的钥匙串服务API),结果是一样的。
import Foundation
let account = "username"
let password = "password".data(using: String.Encoding.utf8)!
var query: [String: Any] = [kSecClass as String: kSecClassInternetPassword,
kSecAttrAccount as String: account,
kSecAttrServer as String: "nabeelomer.me",
kSecAttrSynchronizable as String: kCFBooleanTrue,
kSecValueData as String: password]
let status = SecItemAdd(query as CFDictionary, nil)
print(status)
Run Code Online (Sandbox Code Playgroud)
应用程序是否需要未记录的许可?
斯威夫特 4.0、macOS 10.13.3、Xcode 9.1