---
title: Step 2. Preparing the projects
description: Install JavaScript dependencies, build SDK packages, and prepare the Android signing keystore and iOS CocoaPods setup.
component: orchsdks
page_id: orchsdks:journey:try-it-out/react-native/02_prepare-projects
canonical_url: https://developer.pingidentity.com/orchsdks/journey/try-it-out/react-native/02_prepare-projects.html
llms_txt: https://developer.pingidentity.com/orchsdks/llms.txt
docs_for_agents: https://developer.pingidentity.com/build-with-ai/docs-for-agents.md
keywords: ["PingOne Advanced Identity Cloud", "PingAM", "Journeys", "Setup &amp; Configuration", "Source Code", "Tutorial", "SDK", "React Native"]
section_ids:
  preparing_the_react_native_project: Preparing the React Native project
  preparing_the_native_android_project: Preparing the native Android project
  preparing_the_native_ios_project: Preparing the native iOS project
---

# Step 2. Preparing the projects

[icon: circle-check, set=far]PingOne Advanced Identity Cloud [icon: circle-check, set=far]PingAM [icon: react, set=fab]React Native

* [Prepare](00_before-you-begin.html)

* [Download](01_download_samples.html)

* **Install**

* [Configure](03_configure_sample.html)

* [Run](04_run_the_sample.html)

After downloading the Orchestration SDK for React Native repository, you can prepare the React Native JavaScript project and install the dependencies, and prepare the Android and iOS projects in the sample app.

|   |                                                                                              |
| - | -------------------------------------------------------------------------------------------- |
|   | Run all the commands on this page from the repository root folder, `/ping-react-native-sdk`. |

## Preparing the React Native project

To prepare the React Native project you must install the required packages and dependencies, and also build the Orchestration SDK for React Native modules, which the sample app will use.

1. To install all workspace dependencies across the monorepo, run the following yarn command:

   ```shell
   yarn install
   ```

2. Build the Orchestration SDK for React Native packages so that the sample application can import them to implement their functionality:

   ```shell
   yarn packages:build
   ```

   |   |                                                                                                         |
   | - | ------------------------------------------------------------------------------------------------------- |
   |   | In your own apps you would install Orchestration SDK for React Native packages from the npm repository. |

## Preparing the native Android project

The Android build requires a signing keystore. Generate one by running the `keytool` utility in the repository root:

1. Run `keytool` to generate a JKS file:

   ```shell
   keytool -genkeypair -v \
     -keystore PingSampleApp/android/app/pingsampleapp-debug.jks \
     -alias androiddebugkey \
     -keyalg RSA -keysize 2048 -validity 10000 \
     -storepass 5tr0ngP@S5w0rd! -keypass 5tr0ngP@S5w0rd! \
     -dname "CN=Android Debug,O=Android,C=US"
   ```

   Replace ***5tr0ngP\@S5w0rd!*** with a password of your choice, using the same value for both the `-storepass` and `-keypass` parameters.

   |   |                                                                                                                                                                                                                                                                   |
   | - | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
   |   | You must place the generated keystore file at `PingSampleApp/android/app/pingsampleapp-debug.jks`.The build will fail if the keystore file is missing, or if the passwords in your `gradle.properties` file do not match those used when generating the keystore. |

2. Add the keystore credentials to your global Gradle properties file, for example at `~/.gradle/gradle.properties`.

   ```properties
   KEYSTORE_PASSWORD=5tr0ngP@S5w0rd!
   KEY_PASSWORD=5tr0ngP@S5w0rd!
   ```

   |   |                                                                                                                                        |
   | - | -------------------------------------------------------------------------------------------------------------------------------------- |
   |   | By placing the credentials in your global Gradle properties file you reduce the risk of adding the credentials to your source control. |

## Preparing the native iOS project

After installing JavaScript dependencies, install the iOS native dependencies:

```shell
yarn sample:clean-install
```

The `clean-install` script installs Bundler gems, runs CocoaPods, and cleans any stale build artifacts.

|   |                                                                                                                                                           |
| - | --------------------------------------------------------------------------------------------------------------------------------------------------------- |
|   | Run `yarn sample:clean-install` again from the root of the project after any native dependency changes, or if you encounter unexplained iOS build errors. |
