Android App White Labeling

General Setup

  • Like iOS, we have build flavors to generate our Official, Experimental, and F-Droid app versions.

    • experimental and official folders contain app icons and splash screens.

    • play and foss folders contain the necessary code to run the app with or without Google Play services.

      • foss build doesn't contain push notifications implemented.

    • main folder contains core implementations.

    • debug folder contains code to run the app in debug mode.

    To build the Experimental app using experimental, play debug, and main folders,

  • Set APPLICATION_ID, VERSIONCODE and BugsnagAPIKey on ./android/

  • Generate a new image asset for ic_notification and target main.

  • Generate a new image asset for ic_launcher and target experimental.

  • Splash screen uses the same asset as the ic_launcher ,and you can change the background on splashBackground.

  • Change the app name and share the extension name on ./android/app/src/main/res/values/strings.xml

Generate Upload Key

To generate the Keystore for verifying your app on Google Play,

  • Run the following commands:

cd android/app

keytool -genkeypair -v -keystore my-upload-key.keystore -alias my-key-alias -keyalg RSA -keysize 2048 -validity 10000

To learn more about generating an upload key in ReactNative, see the official documentation.

  • The command prompts you for some credentials.

  • Set KEYSTORE_PASSWORD and KEY_PASSWORD on ./android/ with the passwords you were prompted for.

Generating Android app on Firebase

  • Go to the project overview on Firebase.

  • Navigate to Settings > Project settings.

  • On the General tab, click on Add app under Your apps.

  • Enter your bundle ID as the Android package name and click Register app.

  • Download the config file and move it as instructed.

Running the app

  • To run the app, execute these commands:


yarn android-whitelabel <YOURAPPID>

For example, the app created on this document would use

yarn android-whitelabel chat.rocket.whitelabel

This script uses experimentalPlayDebug build flavor. When you build your app on release mode, use experimentalPlayRelease. See the official documentation for more info.

Last updated

Rocket.Chat versions receive support for six months after release.