我如何在 UIApplication 中加载钩子?
#import <CaptainHook/CaptainHook.h>
#import <SpringBoard/SpringBoard.h>
CHDeclareClass(SBAlertWindow);
CHOptimizedMethod(1, self, void, SBAlertWindow, displayAlert, id, alert) {
NSLog(@"load displayAlert!");
CHSuper(1, SBAlertWindow, displayAlert, alert);
}
CHDeclareClass(UIApplication)
CHOptimizedMethod(1, self, void, UIApplication, openURL, NSURL *, url) {
NSString *linkToOpen = [[NSURL alloc] initWithString:[url absoluteString]];
NSLog(@"dont load link: %@", linkToOpen);
CHSuper(1, UIApplication, openURL, url);
}
CHConstructor {
CHLoadLateClass(SBAlertWindow);
CHHook(1, SBAlertWindow, displayAlert);
CHLoadLateClass(UIApplication);
CHHook(1, UIApplication, openURL);
}
在我使用 SBAlertWindow 进行的测试中。工作完美。但 UIApplication 中的 openURL 不挂钩。
需要在makefile中进行一些配置吗?