准备工作

需要的软件

  • iOS App signer 链接
  • MachOView yololib 链接
  • ideviceinstaller brew install ideviceinstaller

需要的材料

  • 京东客户端,已砸壳版,可以去pp助手等助手类网站下载,省去了自己砸壳的过程
  • 开发者账号,个人、企业都可以
  • 某一动态库,本文不介绍动态库如何写,如何生成。文章中我选用的是链接
  • iPhone,非越狱即可

开始

动态库文件与bin文件

解压京东客户端的ipa文件,取出bin二进制执行文件。执行
./yololib [被插入dylib的二进制文件] [要插入的dylib]

是否插入成功,可用MachOView这个软件查看

对动态库进行签名

`codesign -f -s “iPhone Developer: xxxxxxx@gmail.com (XXXXXXXXX)” FLEXDylib.dylib`

然后将两个文件都拷贝到JD4iPhone.app文件夹中

embedded.mobileprovision

创建一个新的工程,bundleID写一个新的。(用线上app的bundleID无法进行签名)

如果无法运行,按照提示fix issue,或者换个bundleID。

编译运行成功后,打开声称的.app文件夹,找到embedded.mobileprovision这个文件,拷贝到JD4iPhone.app文件夹中。

多个target

京东客户端有Today Extension 与 Watch Extension,签名比较麻烦,我采用简单粗暴的方式,直接删除。
在JD4iPhone.app文件夹中,删除PlugIns文件夹

使用iOS App signer 进行签名

  • 打开iOS App signer。
  • Input File 选择 JD4iPhone.app文件夹
  • 证书选择你的证书,生成embedded.mobileprovision用的证书
  • Provisionning Profile 选择对应bundleID的Provisionning Profile
  • 后面两项为可选,可不填
  • 点击start,选择目标路径,最后会生成ipa安装包

安装

使用 ideviceinstaller 这个命令行工具可清楚的看到哪一步安装失败。

`ideviceinstaller -i JD4iPhone.ipa`

最后

如果安装成功了,会提示证书需要信任,去设置-通用-描述文件,信任一下就可以了。

参考文章

详细教程请点击 iOS冰与火之歌番外篇 - 在非越狱手机上进行App Hook