SecItemAdd在Xcode 9上返回-50

时间:2017-10-11 10:03:14

标签: ios swift security xcode8 xcode9

以下代码:

    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上返回-50错误(aka。errSecParam)。

任何帮助?

1 个答案:

答案 0 :(得分:1)

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

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

奇怪的是,在Xcode 8上没有必要。