Obfuscator.io Metro Plugin
This metro plugin obfuscate your React Native bundle using javascript-obfuscator
It only obfuscates your code not the code of node_modules
, you can verify the obfuscated bundle by either extracting the index.android.bundle
from generated apk
or you can find the file at project_root\android\app\build\generated\assets\react\release
after assembleRelease
process
for iOS if you’re facing any issue check this comment by @andresarezo
Installation
npm i -D obfuscator-io-metro-plugin
Docs
Docs
Usage
Include the plugin in your metro.config.js
:
const jsoMetroPlugin = require("obfuscator-io-metro-plugin")(
{
compact: false,
sourceMap: false,
controlFlowFlattening: true,
controlFlowFlatteningThreshold: 1,
numbersToExpressions: true,
simplify: true,
stringArrayShuffle: true,
splitStrings: true,
stringArrayThreshold: 1,
},
{
runInDev: false ,
logObfuscatedFiles: true ,
}
);
module.exports = {
transformer: {
getTransformOptions: async () => ({
transform: {
experimentalImportSupport: false,
inlineRequires: false,
},
}),
},
...jsoMetroPlugin,
};
For obfuscation options configuration docs see: https://github.com/javascript-obfuscator/javascript-obfuscator