iOS重签名及问题总结
参考
基本步骤可以参考上面的文档
问题1
下载并生成 optool 工具
$ git clone https://github.com/alexzielenski/optool.git $ cd optool/ $ git submodule update --init --recursive
然后将 optool 文件拷贝到目录 /usr/bin/
下。 发现拷不进去
如何在 Mac 上启用 root 用户 启动了root还是不可以
拷贝
$ sudo cp -f optool /usr/bin/
报错
$ cp: /usr/bin/optool: Operation not permitted
没有权限(是El Capitan
加入了Rootless机制
,不再能够随心所欲的读写很多路径下了。设置 root 权限也不行。)
解决方法:
关闭 Rootless (重启按住 Command+R,进入恢复模式,打开Terminal。)
$ csrutil disable
恢复默认
$ csrutil enable
然后就可以拖了
问题2
使用 optool 添加链接路径
$ optool install -c load -p "@executable_path/FridaGadget.dylib" -t Payload/UnCrackable\ Level\ 1.app/UnCrackable\ Level\ 1
各种报错 最常见的
command not found
No such file or directory
-c
为指定 load_command 命令,-p
指定动态库的路径, -t
指定目标文件。
解决方法:
查看路径是否正确
使用 security 工具可以列出你当前存在的签名标志:
$ security find-identity -p codesigning -v
问题3:
重签名
$ rm -rf Payload/F/_CodeSignature $ /usr/bin/codesign --force --sign 8004380F331DCA22CC1B47FB1A805890AE41C938 Payload/UnCrackable\ Level\ 1.app/FridaGadget.dylib Payload/UnCrackable Level 1.app/FridaGadget.dylib: replacing existing signature $ /usr/bin/codesign --force --sign 8004380F331DCA22CC1B47FB1A805890AE41C938 --entitlements entitlements.plist Payload/UnCrackable\ Level\ 1.app/UnCrackable\ Level\ 1 Payload/UnCrackable Level 1.app/UnCrackable Level 1: replacing existing signature
重签名 报错
Payload/UnCrackable Level 1.app/FridaGadget.dylib: replacing existing signature
不造为什么待解决
解决方法
打包 ipa 与重签名可以直接使用图形化工具 ios-app-signer 来完成。
安装
XCode 在菜单 - Window - Devices 中打开设置窗口。点击 Installed Apps 栏下面的 + 号就可以选择 ipa 文件进行安装了。
问题4
安装报错
This application's application-identifier entitlement does not match that of the installed application. These values must match for an upgrade to be allowed.
解决方案:
iPhone上已经装了包标识符一样的 App,删掉再运行。
更多: