react-native-obfuscator
Obfuscate selected source files when building for React Native.
The original package react-native-obfuscating-transformer seems to be broken. So I fixed it.
Installation
npm i git+https://github.com/AustinZuniga/react-native-obfuscator.git
Install needed npm packages
npm i babylon babel-traverse
Usage
React Native >= 0.59
/metro.config.js
moduleexports = transformer: getTransformOptions: async transform: experimentalImportSupport: false inlineRequires: false babelTransformerPath: require ;
/transformer.js
best working obfuscatorOptions after several test.
const obfuscatingTransformer = const filter = { return filename;}; moduleexports =
React Native < 0.59
/rn-cli.config.js
module.exports = {+ transformer: {+ babelTransformerPath: require.resolve("./transformer")+ }, }
/transformer.js
const obfuscatingTransformer = moduleexports =
Configuration
Options are:
upstreamTransformer: MetroTransformer
Defines what the first pass of code transformation is. If you don't use a custom transformer already, you don't need to set this option.
TypeScript example:
const obfuscatingTransformer = require('react-native-obfuscator')+ const typescriptTransformer = require('react-native-typescript-transformer') module.exports = obfuscatingTransformer({+ upstreamTransformer: typescriptTransformer })
require('metro/src/transformer')
Default value: filter: (filename: string, source: string) => boolean
Returns true for any files that should be obfuscated and false for any files which should not be obfuscated.
By default, it obfuscates all files in src/**/*
obfuscatorOptions: ObfuscatorOptions
Warning — Not all options are guaranteed to produce working code. In particular, stringArray
definitely breaks builds.
See the javascript-obfuscator docs for more info about what each option does.
trace: boolean
if true, prints a list of files being obfuscated
false
Default value: emitObfuscatedFiles: boolean
if true, emits the obfuscated versions of files alongside their originals, for comparison.
false
Default value: enableInDevelopment: boolean
If true, enables obfuscation in development mode.
false
Default value: Known Issue
- identifierNamesGenerator's not working correctly POSSIBLE SOLUTION