最近更换了自己的Apple账号,然后发现网易云音乐在该区没有上架。由于不想在一台手机上搞两个账号互相切换,于是便想到将App重签名一下安装到手机中。同时,自己蛮讨厌开屏广告的,就顺手写了个Tweak来屏蔽开屏广告。期间有一些小坑,写篇博客来记录一下。
离合器砸壳失败
第一步就是砸壳了,结果发现使用离合器砸壳出错,没有成功生成脱壳的IPA文件。具体原因没有深研,但是看错误提示,猜测应该是离合器不支撑StickerPack的扩展导致的。
尝试使用dumpdecrypted来砸壳,测试成功。砸壳的方法参考了这篇博客。得到砸壳后的可执行文件之后,从越狱机中将App拷贝贝出来,替换掉可执行文件即可。
Theos默认不支持ARC
Theos工程的Makefile中添加下面一句:
ADDITIONAL_OBJCFLAGS = -fobjc-arc
复制代码
Tweak实现原理
由于开屏广告的显示时间非常靠前,不可能等到App启动后,从网络获取到数据后再显示,一般的做法就是提前加载好之后要显示开屏广告数据缓存到本地,App每次刚启动后,直接从本地取出数据,然后显示需要的开屏广告给用户。
将二进制拖到Hopper中&#x