1 | # expo-random
|
2 |
|
3 | ## ⚠️ Deprecated
|
4 |
|
5 | This package is now deprecated in favor of `expo-crypto`, which provides the same functionality.
|
6 | To migrate, replace all imports from `expo-random` with imports from `expo-crypto`.
|
7 |
|
8 | Provides a native interface for creating strong random bytes. With `Random` you can generate random values to address use cases that other APIs like the web's `crypto.getRandomValues` and Node's `crypto.randomBytes` might address.
|
9 |
|
10 | # Installation in managed Expo projects
|
11 |
|
12 | For [managed](https://docs.expo.dev/versions/latest/introduction/managed-vs-bare/) Expo projects, please follow the installation instructions in the [API documentation for the latest stable release](https://docs.expo.dev/versions/latest/sdk/random/).
|
13 |
|
14 | You can add a polyfill for the web's `crypto.getRandomValues` by installing [expo-standard-web-crypto](https://github.com/expo/expo/tree/main/packages/expo-standard-web-crypto) and importing it in SDK 39 and higher:
|
15 |
|
16 | ```js
|
17 | import { polyfillWebCrypto } from 'expo-standard-web-crypto';
|
18 |
|
19 | polyfillWebCrypto();
|
20 | // crypto.getRandomValues is now globally defined
|
21 | ```
|
22 |
|
23 | Other libraries like [react-native-get-random-values](https://github.com/LinusU/react-native-get-random-values) may work too.
|
24 |
|
25 | # Installation in bare React Native projects
|
26 |
|
27 | For bare React Native projects, you must ensure that you have [installed and configured the `expo` package](https://docs.expo.dev/bare/installing-expo-modules/) before continuing.
|
28 |
|
29 | ### Add the package to your npm dependencies
|
30 |
|
31 | ```
|
32 | expo install expo-random
|
33 | ```
|
34 |
|
35 | ### Configure for iOS
|
36 |
|
37 | Run `npx pod-install` after installing the npm package.
|
38 |
|
39 | ### Configure for Android
|
40 |
|
41 | No additional set up necessary.
|