Skip to main content
The legacy React Native SDK (@dynamic-labs/legacy-react-native-extension) has moved its secure-storage dependency from expo-secure-store to react-native-keychain. This is a breaking change for any app that installed the SDK directly or through its peer dependencies.
No code changes are required. The SDK manages the storage layer internally; you only need to update your dependency list and rebuild the native layer.
The legacy React Native SDK packages have been renamed with a legacy- prefix. When you update your dependencies, use @dynamic-labs/legacy-react-native-extension (and legacy-client, legacy-react-hooks, legacy-viem-extension, etc.) instead of the unprefixed names. The installation docs already reflect these names.

What changes

Migration steps

1

Replace the dependency

Remove expo-secure-store from your project and install react-native-keychain.
2

Clean and reinstall

Delete your lockfile and native build folders so the new dependency is the only secure-storage native module linked.
Only delete ios/ and android/ if you generated them from npx expo prebuild and have no manual native changes. Back up any custom native code first.
3

Rebuild the native layer

For Expo managed or bare workflows, regenerate and rebuild the native projects.

Verify the migration

After rebuilding, confirm that:
  • expo-secure-store no longer appears in your lockfile.
  • react-native-keychain appears in node_modules.
  • Your app builds and the SDK initializes without a secure-storage error.
Last modified on July 29, 2026