This README provides step-by-step instructions for integrating and using the ByteHide React Native Shield Plugin for obfuscating your React Native project's source code.
Install the plugin as a development dependency in your project:
npm install --save-dev @bytehide/react-native-shield
You can create a standalone script to perform obfuscation manually.
-
Create a script file in the root of your project, e.g.,
obfuscate.js
, and add the following:const shield = require('@bytehide/react-native-shield'); const srcPath = './src'; // Path to source files const destPath = './dist'; // Path to destination const projectToken = 'your_project_token'; // Project token shield .obfuscate(srcPath, destPath, projectToken) .then(() => console.log('Obfuscation completed successfully!')) .catch((err) => console.error('Error during obfuscation:', err));
-
Run the script manually when needed:
node obfuscate.js
Include the obfuscation step as a script in your project's package.json
:
-
Modify
package.json
:"scripts": { "obfuscate": "node obfuscate.js" }
-
Execute the obfuscation script:
npm run obfuscate
-
Add a custom task to
android/app/build.gradle
:task obfuscateJs(type: Exec) { commandLine "node", "${project.rootDir}/obfuscate.js" } preBuild.dependsOn obfuscateJs
-
Go to Build Phases > + Add Run Script Phase in Xcode.
-
Add the following script:
node "$SRCROOT/../obfuscate.js"
You can integrate the obfuscation step as a custom React Native CLI command.
-
Add the following to
react-native.config.js
:module.exports = { commands: [ { name: 'obfuscate', func: () => { const shield = require('@bytehide/react-native-shield'); const srcPath = './src'; const destPath = './dist'; const projectToken = 'your_project_token'; shield .obfuscate(srcPath, destPath, projectToken) .then(() => console.log('Obfuscation completed successfully!')) .catch((err) => console.error('Error during obfuscation:', err)); }, }, ], };
-
Run the command:
npx react-native obfuscate
You can use the bin
command to obfuscate your project.
npx @bytehide/react-native-shield obfuscate --src ./src --dest ./dist --token your_project_token
This command will obfuscate the source files in the ./src
directory and save the obfuscated files in the ./dist
directory.