Android App White Labelling

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.