yarn react-native-keychain 11.0.0
v11.0.0

3 hours ago

React Native Keychain v11 moves to TurboModules and the New Architecture, adds Swift Package Manager integration and internet credential server listing, and fixes credential scope and authentication behavior.

Breaking changes and upgrading

  • React Native 0.82+ and React 19.1.1+ are required. The Old Architecture is no longer supported. (#761, #823)
  • Node.js 20.19.4+ is required. (#823)
  • Android API 24+ is required by the library. Your React Native version or app may require a higher minimum. The library's iOS minimum is 15.1; use the higher deployment target required by your app and React Native. (#754)
  • hasInternetCredentials now takes an options object: hasInternetCredentials({ server: 'https://example.com' }). Replace the previous string argument. (#776)
  • On iOS, omitted cloudSync and false select only non-synchronizable items; true selects synchronizable items. Use the same value for writes, reads, existence checks, and resets. (#824)
  • TypeScript result types now reflect native responses, including iOS storage: 'keychain', internet credentials using server on iOS or service on Android, and boolean results from resetInternetCredentials and setSharedWebCredentials. (#805)

Install react-native-keychain@11.0.0, update native dependencies, and rebuild your app. See the installation guide.

New features

  • Swift Package Manager integration for iOS (preview), through React Native 0.88+'s experimental SPM autolinking flow. CocoaPods remains supported. Directly adding this repository as an Xcode package is not supported. (#822)
  • getAllInternetCredentialServers() lists distinct servers without returning usernames or passwords. On Android, older unclassified entries are excluded by default; includeLegacy: true includes them and may also include generic password services. (#828)
  • ERROR_CODE constants for handling native errors without parsing localized messages. Available codes and behavior depend on the platform and operation. (#762)

Fixes

  • Android service enumeration reads stored entries, and credential reads preserve saved authentication policies instead of broadening them. (#827)
  • Android weak biometrics no longer trigger an unsupported prompt. (#759)
  • Android DataStore dependency updated to address RELRO alignment. (#829)
  • iOS operations isolate synchronizable and non-synchronizable credentials, so replacing or resetting one scope leaves the other intact. (#824)
  • Authentication prompt options are normalized without mutating caller objects, preserving defaults and caller overrides. The default export now includes both credential existence methods. (#775, #805)

Documentation and testing

  • New dark VitePress documentation, clearer storage and upgrade guidance, and a refreshed example app. (#826, #830, #831, #832)
  • Native storage and query regression coverage separated from Detox application flows. (#833)

Full changelog: v10.0.0...v11.0.0

Don't miss a new react-native-keychain release

NewReleases is sending notifications on new releases.