# React Native Expo

**Using Expo Go**

To use Expo Go in Moropo, upload the Expo Go .app and .apk in place of your release build files.

**Using an Expo Dev Client**

If you wish to test using an Expo Dev Client, follow Expo's instructions on producing an [iOS Simulator build](https://docs.expo.dev/build-reference/simulators/) or [Android APK](https://docs.expo.dev/build-reference/apk/). Once you have the build files (.app and .apk), you can upload them to Moropo in the usual way.

**Launch your app via an Expo URL**

*These examples assume you're working with an Expo Dev Client.*

Grab your Expo URL and use the `openLink` command to launch your app:

```yaml
appId: ${BUNDLEID}
---
- openLink:
    link: "${BUNDLEID}://expo-development-client/?url=https://u.expo.dev/cx1e344b-8011-4434-91a6-dec36deb68c0?channel-name=moropo-452&runtime-version=exposdk:47.0.0&platform=ios"
```

If you're using the Moropo GitHub Expo Integration then the Expo Release Channel URL can be auto-populated for you via the [usd-exporeleasechannel](https://docs.moropo.com/creating-tests/environment-variables/usd-exporeleasechannel "mention") variable.

```yaml
appId: ${BUNDLEID}
---
- openLink:
    link: "${BUNDLEID}://expo-development-client/?url=${EXPORELEASECHANNEL}"
```

#### Disabling Onboarding

{% hint style="warning" %}
Disable Onboarding isn't working in Expo SDK 51
{% endhint %}

If it's the first time opening Expo (as it always the case on Moropo clean devices) then you will be presented with the Expo onboarding flow:

> Hello there, friend! :wave:\
> \
> Since this is your first time opening this development build, we wanted to show you this menu...

<figure><img src="https://1849561984-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FNrvYDqka9qiakmPqT4am%2Fuploads%2FFmwv1sIsAOEdw3BfF2Lq%2F1682502337897-Map.png?alt=media&#x26;token=c33c9881-d2a7-4055-9791-18105ffcffa3" alt="" width="188"><figcaption><p>Expo onboarding flow appearing during a test run</p></figcaption></figure>

It's easy to bypass this menu by adding the `disableOnboarding` parameter to the end of your Expo URL. This parameter will instruct Expo to skip this screen so you don't need to include it in your test flow.\
\
Note, due to differences between Android & iOS this has to be formatted slightly differently for each.

* Android - `%26disableOnboarding%3D1`
* iOS - `&disableOnboarding=1`

```yaml
appId: ${BUNDLEID}
---
#Android Example
- openLink:
    link: "${BUNDLEID}://expo-development-client/?url=${EXPORELEASECHANNEL}%26disableOnboarding%3D1"
#iOS Example
- openLink:
    link: "${BUNDLEID}://expo-development-client/?url=${EXPORELEASECHANNEL}&disableOnboarding=1"
```

Alternatively, you can manage the difference between the two by using [conditionals](https://docs.moropo.com/creating-tests/advanced-use-cases/conditionals "mention")&#x20;
