react-native-secret-config
Backround
By default, when your build react native, you can find bundle file on assets/index.android.bundle
then you can find all config on the bundle file, hmmm.
This module, move config to native.
Getting started
yarn add react-native-secret-config
Install
If your using RN >= 0.60, this is automatic linking
on ios, cd ios && pod install
Manual Install Android
- in
android/settings.gradle
:
...include ':app'+ include ':react-native-secret-config'+ project(':react-native-secret-config').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-secret-config/android')
- in
android/app/build.gradle
:
dependencies { ... implementation "com.facebook.react:react-native:+" // From node_modules+ implementation project(':react-native-secret-config')}
- in
MainApplication.java
:
import java.util.List;+ import com.indaam.secretconfig.SecretConfigPackage; ... // packages.add(new MyReactNativePackage());+ packages.add(new SecretConfigPackage()); return packages;
Manual Install ios via CocoaPods
- In
ios/Podfile
pod 'Folly', :podspec => '../node_modules/react-native/third-party-podspecs/Folly.podspec'+ pod 'react-native-secret-config', :path => '../node_modules/react-native-secret-config'
Then pod install
on ios directory
Setup
On your root project, create file secret-config.json
, then create your json file, example like this
Then on root project, node node_modules/react-native-secret-config/src/cli/index.js
or
on package.json
add this shorcut
"scripts": { "android": "react-native run-android",+ "config" : "node node_modules/react-native-secret-config/src/cli/index.js"....
Then, yarn config
After init config, rerun your project react-native run-android
or react-native run-ios
Usage
;console;
Advance CLI
By default, when your run scripts node node_modules/react-native-secret-config/src/cli/index.js
The script will generate config to native from secret-config.json
, this is option CLI
Option | Type | Default | Note |
---|---|---|---|
useBase64 |
boolean |
false |
If true, will convert to base64 |
includeEnv |
any |
.env |
If env exist will merge with config |
configFileName |
string |
secret-config.json |
Define config file name |
CLI Example
- Include env
node node_modules/react-native-secret-config/src/cli/index.js includeEnv=".env.stag"
- Use Base64
node node_modules/react-native-secret-config/src/cli/index.js useBase64=true
- Custom File Name
node node_modules/react-native-secret-config/src/cli/index.js configFileName="my-file.json"
!IMPORTANT The config file must be json format