HomeGuidesReferenceLearn

Parallel installation

Learn how to install development and production build instances at the same time on the same device.


When creating development and production builds, it is common to install each build on the same device parallelly. This allows testing development work and running the production version without the need to uninstall and reinstall the app. This guide explains how you can have multiple build instances installed on the same device.

Prerequisites

To have multiple instances of an app installed on your device, each instance must have a unique Application ID (Android) or Bundle Identifier (iOS).

Convert app.json to app.config.js

Start by converting your app.json to app.config.js. This allows you to use the environment variable to set the Application ID or Bundle Identifier. The environment variable is used to distinguish between development and production. Based on its value, you can set different Application IDs or Bundle Identifiers for each build.

For example, let's consider the following app.json is your project's configuration:

app.json
{
  "expo": {
    "name": "MyApp",
    "slug": "my-app",
    "ios": {
      "bundleIdentifier": "com.myapp"
    },
    "android": {
      "package": "com.myapp"
    }
  }
}

Rename the file to app.config.js and switch the Application ID (android.package) or Bundle Identifier (ios.bundleIdentifier) based on the variable:

app.config.js
module.exports = () => {
  if (process.env.MY_ENVIRONMENT === 'production') {
    return {
      ios: { bundleIdentifier: 'com.expo.example' },
      android: { package: 'com.expo.example' },
    };
  } else {
    return {
      ios: { bundleIdentifier: 'dev.expo.example' },
      android: { package: 'dev.expo.example' },
    };
  }
};

If you are using any libraries that require you to register your application identifier with an external service to use the SDK, such as Google Maps, you will need to have a separate configuration for that API for the Application ID or Bundle Identifier. You can also swap this configuration using the same approach as above.

Alternatively, if you are using EAS Build, you can also use app variant environment variable to install multiple instances of an app on the same device.

Next step

Tools, workflows and extensions

Tools, workflows and extensions description: Learn more about different tools, workflows and extensions available when working with development builds.