2

我将在我的 RN 项目中使用 react-native-keychain 库,但似乎不适用于我的本地。

注册护士:0.61.5

反应原生钥匙串:“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')

有什么解决方案可以解决吗?

谢谢

4

2 回答 2

0

当我尝试打开多个 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:包 repo 中存在类似错误的问题,您可能想看看:https ://github.com/oblador/react-native-keychain/issues/221

于 2020-07-06T08:10:21.253 回答
0

你可以修复它:

在 Podfile 中设置

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

或者

use_native_modules!

然后运行

pod install
于 2020-10-23T08:42:22.080 回答