禁用React Native Android发行版的代码压缩和混淆

6

我在开发环境中正常地使用react-native应用程序。我想测试它的性能并发布了一个构建版本,但启动后崩溃了。

01-09 20:16:13.644 23215 23251 E ReactNativeJS: Object type 't' not found in schema.

01-09 20:16:13.648 23215 23251 E ReactNativeJS: Module AppRegistry is not a registered callable module (calling runApplication)

由于源代码的缩小和混淆,我无法确定崩溃的原因。请问您能否帮助我禁用它,因为我已经花费了大量的时间。

React Native 版本:0.49.5


你可以尝试将Sentry集成到你的应用程序中。通过使用源代码映射,在Sentry中可以看到符号化的错误信息,而不是被缩小过的代码。 - alizahid
4个回答

6
在android/app/build.gradle文件的extraPackagerArgs中加入--minify=false应该可以完成这个任务。
project.ext.react = [
    entryFile: "index.js",
    extraPackagerArgs: [ '--minify=false' ],
];

同时,gradlew文档中提到要使用bundleInRelease: false。 - spacedev

2
您可以使用CLI工具Haul来完成这个任务。
如果使用Haul bundle --minify false命令无法达到效果,那么Haul还提供其他命令。

有没有通过配置Metro的方法来实现它? - chemisax

1

我认为你应该先在应用程序的开发者菜单中取消勾选开发模式,以测试你的应用程序。

我曾经遇到过同样的问题,花了一些时间才解决。

我禁用了开发模式,这样就生成了与发布包相同的JS包,我找到了问题并解决了它。


0
如果有人到了这里,这可能会有所帮助:
``` node_modules/.bin/haul bundle --dev=false --config=node_modules/react-native-bundle-visualizer/src/webpack.haul.js ```
你可以通过以下方式了解更多信息:
``` node_modules/.bin/haul bundle --help ```

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接