2.1.4 • Published 1 year ago
@attarchi/obfuscator-io-metro-plugin v2.1.4
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-pluginDocs
Usage
Include the plugin in your metro.config.js:
const jsoMetroPlugin = require("obfuscator-io-metro-plugin")(
  {
    // for these option look javascript-obfuscator library options from  above url
    compact: false,
    sourceMap: false, // source Map generated after obfuscation is not useful right now so use default value i.e. false
    controlFlowFlattening: true,
    controlFlowFlatteningThreshold: 1,
    numbersToExpressions: true,
    simplify: true,
    stringArrayShuffle: true,
    splitStrings: true,
    stringArrayThreshold: 1,
  },
  {
    runInDev: false /* optional */,
    logObfuscatedFiles: true /* optional generated files will be located at ./.jso */,
    excludes: '**/*.assets.**' /* optional, A file names or globs which indicates files to exclude from obfuscation. */, 
  }
);
module.exports = {
  transformer: {
    getTransformOptions: async () => ({
      transform: {
        experimentalImportSupport: false,
        inlineRequires: false,
      },
    }),
  },
  ...jsoMetroPlugin,
};For obfuscation options configuration docs see: https://github.com/javascript-obfuscator/javascript-obfuscator
2.1.4
1 year ago