How to build react native android app for production?

React Native

React Native Problem Overview


I've seen new release of react native for android and tried some examples. It works only with USB debug mode and "adb reverse tcp:8081 tcp:8081". How can I build android app for "production" including all dependencies and without react web-server connections. Thank you.

React Native Solutions


Solution 1 - React Native

To build a release version of your Android app:

$ cd your-app-folder
$ cd android && ./gradlew assembleRelease

You'll need to set up signing keys for the Play Store, full documentation here: https://reactnative.dev/docs/signed-apk-android

Solution 2 - React Native

You will have to create a key to sign the apk. Use below to create your key:

keytool -genkey -v -keystore my-app-key.keystore -alias my-app-alias -keyalg RSA -keysize 2048 -validity 10000

Use a password when prompted

Once the key is generated, use it to generate the installable build:

react-native bundle --platform android --dev false --entry-file index.android.js \
  --bundle-output android/app/src/main/assets/index.android.bundle \
  --assets-dest android/app/src/main/res/

Generate the build using gradle

cd android && ./gradlew assembleRelease

Upload the APK to your phone. The -r flag will replace the existing app (if it exists)

adb install -r ./app/build/outputs/apk/app-release-unsigned.apk

A more detailed description is mentioned here: https://facebook.github.io/react-native/docs/signed-apk-android.html

Solution 3 - React Native

As for me, I add in my package.json to "scripts":

"release": "cd android && ./gradlew assembleRelease"

And then in terminal I use:

npm run release

Or with yarn:

yarn release

Solution 4 - React Native

I have put together some steps that worked for me. Hopefully it would save time.

For bundling the package to work in local you need to do

$ curl "http://localhost:8081/index.android.bundle?platform=android" -o "android/app/src/main/assets/index.android.bundle"

Then for compiling apk

$ ./gradlew assembleRelease

I have added detailed instructions at : https://github.com/shyjal/reactnative-android-production

Solution 5 - React Native

To create a bundle of your android application to release application on play store.

cd /android
sudo ./gradlew bundleRelease

go to the android/build/outputs/bundle/release/app-release.apk

Upload this bundle on play store console.

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionsannyView Question on Stackoverflow
Solution 1 - React NativeMartin KonicekView Answer on Stackoverflow
Solution 2 - React NativeSofiane Belhadj KacemView Answer on Stackoverflow
Solution 3 - React NativeKirill HusiatynView Answer on Stackoverflow
Solution 4 - React NativeShyjal RaaziView Answer on Stackoverflow
Solution 5 - React NativeEr Bhaskar Dutt SharmaView Answer on Stackoverflow