开发者问题收集

TypeError:null 不是对象(评估“RNKeychainManager.SECURITY_LEVEL_ANY”)

2020-06-26
4090

我将在我的 RN 项目中使用 react-native-keychain 库,但似乎无法在本地运行。

RN:0.61.5

react-native-keychain:“6.1.1”,

我试图喜欢这个。

.......

const MEMORY_KEY_PREFIX = '@MyStorage:'
let dataMemory = {}

class MyStorage {
  static syncPromise = null

  static setItem(key, value) {
    Keychain.setGenericPassword(MEMORY_KEY_PREFIX + key, value)
    dataMemory[key] = value
    return dataMemory[key]
  }

  static getItem(key) {
    return Object.prototype.hasOwnProperty.call(dataMemory, key) ? dataMemory[key] : undefined
  }

  static removeItem(key) {
    Keychain.resetGenericPassword()
    return delete dataMemory[key]
  }

  static clear() {
    dataMemory = {}
    return dataMemory
  }
}
.......

但我遇到了问题。

TypeError:null 不是对象(评估“RNKeychainManager.SECURITY_LEVEL_ANY”)

有没有什么解决方案可以解决这个问题?

谢谢

2个回答

当我尝试打开多个 iOS 模拟器时,我收到此错误。我不确定你的情况是否与我遇到的情况相同。

对我来说,修复方法是:

  1. 关闭所有 iOS 模拟器

  2. 在模拟器上专门运行 react-native 项目。

    • yarn ios --simulator="iphone 8" - 将在 iPhone 8 中运行应用程序
    • yarn ios --simulator="iphone 11" - 将在 iPhone 11 中运行应用程序

要列出所有可用的设备模拟器,您可以运行 xcrun simctl list devices

PS:软件包存储库中有一个问题,出现类似的错误,您可能需要查看一下: https://github.com/oblador/react-native-keychain/issues/221

Indra Lukmana
2020-07-06

你可以修复它:

在 Podfile 中设置

pod 'RNKeychain', :path => '../node_modules/react-native-keychain'

use_native_modules!

然后运行

pod install
Tatsiana
2020-10-23