Reputation: 6305
How do I know if my React Native app is running in production or development? Is there some sort of way within JavaScript to tell? Is there a global that is passed in?
Upvotes: 108
Views: 69348
Reputation: 6719
You can use the __DEV__
global variable in JavaScript to determine if you're using React Native packager or not. If you are running your app in the iOS Simulator or Android emulator __DEV__
will be set to true
.
https://reactnative.dev/docs/javascript-environment
Upvotes: 159
Reputation: 2800
You can use the __DEV__
variable.
By default if you run your app with npx react-native run-ios
or npx react-native run-android
, it will run in Debug mode and __DEV__
will be true.
In release mode, __DEV__
will be false.
You can use it this way:
const CLOUD_API_BASE_URL = __DEV__ ? 'https://api-dev.yourdomain.com' : 'https://api-prod.yourdomain.com';
You can run the app in Release mode with the terminal:
react-native run-android --variant release
#android
react-native run-ios --configuration Release
#ios
Or open the ios folder in XCode, choose Product > Scheme > Edit Schemes
Select Run in the left menu. For Build Configuration, choose 'Release' and uncheck 'Debug executable'
In Android Studio, similarly, you can set the build variant to release
Upvotes: 10
Reputation: 1015
When the __DEV__
variable is set to true
, it turns on a bunch of useful development warnings. For production, it is recommended to set __DEV__=false
.
Upvotes: 3