react-native-keychain is a library providing secure access to platform-native credential storage on iOS (Keychain) and Android (Keystore). It enables React Native applications to securely store sensitive data such as passwords, authentication tokens, and other user credentials, protecting them from unauthorized access. The current stable version is 10.0.0, released in late 2024 / early 2025. The project has a consistent release cadence with multiple patch and minor versions preceding major updates, indicating active maintenance and feature development. Key differentiators include robust support for biometric authentication, integration with Android's Jetpack DataStore for enhanced security and performance, and optional iCloud synchronization for iOS keychain items. It explicitly supports modern React Native versions and provides TypeScript definitions.
npm install react-native-keychainVerified import paths — ran on the pinned version, not inferred.
Demonstrates how to store, retrieve, and reset generic credentials (username/password) using `react-native-keychain` with specific access control and security levels.
Update your `minAndroidSdk` in `android/app/build.gradle` to at least 23.
Remove any calls to `library warmup` as autolinking handles initialization. If using `FacebookConceal`, consider staying on an older version or migrating to a different encryption method.
Add `<key>NSFaceIDUsageDescription</key><string>Your privacy message here</string>` to your `ios/YourApp/Info.plist` file.
Always ensure you are on the latest stable version of `react-native-keychain` to benefit from compatibility fixes with recent React Native releases. Check the changelog for specific version requirements.
No direct fix required for existing installations as migration is automatic, but new implementations should understand DataStore is the backend.
This issue was specifically addressed and fixed in `react-native-keychain` version 9.2.1. Upgrade to version 9.2.1 or newer.
This issue was resolved in `react-native-keychain` version 9.2.3. Upgrade to version 9.2.3 or newer to fix the incompatibility.
Ensure `react-native link` (for older RN versions) or autolinking is working. Clean your project (e.g., `cd ios && pod cache clean --all && rm -rf build && pod install`), clear Metro cache (`npm start -- --reset-cache`), and rebuild the app.
Navigate to your `ios` directory and run `pod install`. If issues persist, try `pod deintegrate && pod clean && pod install`, then clean the Xcode build folder.