Debug React Native iOS release
20 Nov 2018
If you’re having problems with your iOS release then it may mean there was a problem with the build and main.jsbundle
was not created. To begin with, delete appName/ios/main.jsbundle
then attempt to manually create a new production release build:
react-native bundle --entry-file index.js --platform ios --dev false --bundle-output ios/main.jsbundle --assets-dest ios
You may find there’s a problem with your build such as maximum call stack size exceeded
. For me, this was fixed with the magical: rm -rf node_modules
When there are no problems, main.jsbundle
should be created automatically when building a production release.
Also during the normal production build process, --dev=false
will be used to set __DEV__
to false
. https://stackoverflow.com/a/34317341/1299792
https://docs.expo.io/versions/latest/workflow/how-expo-works#publishingdeploying-an-expo-app-in-production
Background on building a production release
During the development process, React Native has loaded your JavaScript code dynamically at runtime. For a production build, you want to pre-package the JavaScript bundle and distribute it inside your application. Doing this requires a code change in your code so that it knows to load the static bundle.
This will now reference the main.jsbundle resource file that is created during the Bundle React Native code and images Build Phase in Xcode.
https://facebook.github.io/react-native/docs/running-on-device