我用React Native写了一个应用程序,但在开发快结束时,我的硬盘崩溃了,现在我只有APK文件,我是否可以从APK文件中恢复React Native代码呢?
我用React Native写了一个应用程序,但在开发快结束时,我的硬盘崩溃了,现在我只有APK文件,我是否可以从APK文件中恢复React Native代码呢?
当您解压apk文件时,在assets文件夹内,index.android.bundle文件是打包的React源代码。将index.android.bundle重命名为something.js。
由于something.js是一个打包的文件(经过压缩/混淆),请使用一些JavaScript美化工具(例如unuglifier/jsbeautifier)使其易读。(也可以尝试jsnice)
虽然不完美,但总比没有好。
不,您无法检索实际的代码,但可以获取一些反编译的代码。
brew install apktool
apt-get install -y apktool
你可以查看文档来了解在Windows上的安装步骤。
在安装apktool
后,通过在终端中运行以下命令来解压缩apk文件:
apktool d /pathOfApkFile.apk
接下来,您将在 pathOfApkFile/assets/index.android.bundle
找到 index.android.bundle
文件。
然后,您可以使用react-native-decompiler 来反编译index.android.bundle
文件。
index.android.bundle
文件您可以通过运行此命令来反编译index.android.bundle
:
npx react-native-decompiler -i ./index.android.bundle -o ./output
完成后,你将在./output
目录中获得JS反编译文件
assets/index.android.bundle
文件中。请 @ristapk 修改您已接受的答案,以便未来到达此处的每个人能够理解。 - Pablo Recalde