参考这个:http://www.jianshu.com/p/189afbe3b429
相信这个有很多人已经试过身手了,我这边也试了试 发现在ios9上没有问题 但是在ios8上回崩溃,大概如下:
在dylib的构造函数中
attribute((constructor)) static void entry()
{
NSLog(@“Hello, Ice And Fire!888”);
startOB *ob = [[startOB alloc] init]; // 这是我项目中的一个类 然后我就这样写了这句话,在ios8的系统中就崩溃了,不晓得是什么原因?
}
#import <CaptainHook/CaptainHook.h>
#import “startOB.h”
CHDeclareClass(minecraftpeAppDelegate);//声明要hook的类
CHMethod2(BOOL, minecraftpeAppDelegate, application, id, arg1, didFinishLaunchingWithOptions, id, arg2) {
NSLog(@“000000---------”);
[startOB shareInstance];
NSLog(@“111111---------”);
CHSuper2(minecraftpeAppDelegate, application, arg1, didFinishLaunchingWithOptions, arg2);
}
attribute((constructor)) static void entry()
{
NSLog(@“Hello, Ice And Fire!888”);
CHLoadLateClass(minecraftpeAppDelegate);//加载要hook的类
CHClassHook2(minecraftpeAppDelegate, application, didFinishLaunchingWithOptions);
}
上面是我尝试hook改app的didFinishLaunchingWithOptions 方法,发现程序是没有挂,但是根本就没有hook到,日志也没有打印 ios8下
已经解决了 是忘记加了一个标志 跟dylib注入没有关系