SecItemAdd returns -50 在 Xcode 9

SecItemAdd returns -50 on Xcode 9

以下代码:

    var newItem = [String: Any]()

    newItem[kSecClass as String] = aValue
    newItem[kSecAttrService as String] = aValue
    newItem[kSecAttrAccount as String] = aValue
    newItem[kSecValueData as String] = aValue
    newItem[kSecAttrAccessible as String] = aValue

    // Add a the new item to the keychain.
    let status = SecItemAdd(newItem as CFDictionary, nil)

    if status != noErr {
        print("Error during access token save. \(status)")
    }

在 Xcode 8 上完美运行,没有返回任何错误,在 Xcode 9 上 returns -50 错误(又名 errSecParam)。

有什么帮助吗?

我找到了答案。我需要为 Keychain 框架添加一个主机应用程序以获得完整的上下文。

在我的 xxxxxTests 目标中,我必须在 Host Application 菜单(在 General 选项卡中)中设置我的主应用程序。

奇怪的是 Xcode 8.

上没有必要