阅读 1312

如何反编译一个ReactNative框架的iOS应用

前言

之前用RN写过一个iOS应用,只留了一个ipa,因为签名过期装不上,服务器也换了,装上也没法用,所以想自己搞搞,让这个软件在手机上跑起来。

需要准备的工具

  1. Xcode
  2. sigh签名工具

操作步骤

这篇文章里,SmartNote.ipa为我要修改的ipa,Test是我们通过Xcode新建出来的项目,后面提取embedded.mobileprovision文件用。

拿到 embedded.mobileprovision

  1. 首先你需要在Xcode中新建一个iPhone应用程序的项目,把这个项目运行到你的手机上
  2. 拿到你新建项目打包出来的app:Product > Archive > 右键一个打包 > Show in finder > Products/Applications/Test
  3. 右键app显示包内容,embedded.mobileprovision 这个文件就是我们需要的,把它复制到桌面上

修改ipa

  1. 将SmartNote.ipa后缀改为zip,双击解压开,SmartNote/Payload文件夹里有SmartNote的app,显示包内容,其中main.jsbundle就是RN项目的js代码文件,都是明文的,直接改就行
  2. 修改完成后再SmartNote文件夹下,选中entitlements.plist、Payload等文件,右键压缩。这里不要压缩外面的SmartNote文件夹,那样就会多一级目录,装不上。
  3. 压缩完将后缀名改为ipa

重签名

  1. 命令行运行 sigh resign
    • 第一步:把ipa直接拖进去
    • 第二步:选一个要用的签名,复制这一行然后回车 Apple Development: 12345@gmail.com (27A8BLCHQ)
    • 第三步:把embedded.mobileprovision拖进去然后回车
  2. 签完名后,ipa就可以通过爱思装上了

其他想说的

  • 不要将格式化的main.jsbundle放到反编译的项目里打包,会加载失败
  • RN框架的项目,如果想插入日志的话可以直接写入,mac控制台查看
console.error('Test here!');
复制代码
文章分类
iOS
文章标签