我正在尝试使用iOSOpenDev Captain-Hook调整进行简单的调整。这是我的代码:
#import <Foundation/Foundation.h>
#import <UIKit/UIKit.h>
#import "CaptainHook/CaptainHook.h"
CHDeclareClass(TESTCLASS); // declare class
CHOptimizedMethod(0, self, void, TESTCLASS, testm) // hook method (with no arguments and no return value)
{
// write code here ...
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"HACK" message:@"message" delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil];
[alert show];
//CHSuper(0, TESTCLASS, testm); // call old (original) method
//return nil;
}
CHConstructor // code block that runs immediately upon load
{
@autoreleasepool
{
CHLoadLateClass(TESTCLASS); // load class (that will be "available later")
CHHook(0, TESTCLASS, testm); // register hook
}
}
此外,我还有我的其他应用程序的过滤包。
我的其他应用调用了[TESTCLASS testm]
。如果我将.plist和.dylib放在/ Library / MobileSubstrate / DynamicLibraries中它不起作用,没有任何反应。但是如果我在我的第二个应用程序中添加dylib并编译它,它就可以工作,即使没有将实际的dylib复制到应用程序(在/ Library / MobileSubstrate / DynamicLibraries中使用它)并显示我的警报。
我怎样才能使它发挥作用?
尝试挂钩跳板的一些示例调用 - 它们无法正常工作。 使用Xcode 5.0.2,iOSOpenDev 1.6-2,iPad1 5.1.1