iOSOpenDev 跳板
Posted
技术标签:
【中文标题】iOSOpenDev 跳板【英文标题】:iOsOpenDev SpringBoard 【发布时间】:2014-06-27 11:52:11 【问题描述】:有人可以告诉我如何挂钩 SpringBoard 方法,例如一些带有 iosOpenDev (iOs 7.1) 的 AppSlider 方法。我也不知道我必须采取什么框架。
我已经尝试过了,但控制台上没有显示任何内容:
import UIKit/UIKit.h
import SpringBoard/SpringBoard.h
import "CaptainHook.h"
CHDeclareClass(SBAppSliderScrollingViewController);
CHOptimizedMethod(0, self, void, SBAppSliderScrollingViewController, loadView)
CHSuper(0, SBAppSliderScrollingViewController, loadView);
NSLog(@"Ciccia!");
CHConstructor
@autoreleasepool
CHLoadLateClass(SBAppSliderScrollingViewController);
CHHook(0, SBAppSliderScrollingViewController, loadView);
【问题讨论】:
【参考方案1】:为什么需要
CHLoadLateClass(SBAppSliderScrollingViewController); //for class available later
你可以写
CHLoadClass(SBAppSliderScrollingViewController);//for class available now ;)
您可以使用 Logos 轻松完成。 这是一个例子......
#import <UIKit/UIKit.h>
%hook SBAppSliderController
- (void)loadView
%orig;
NSLog (@"****AppSwitcher Appeared");
UIAlertView *testAlert = [[UIAlertView alloc] initWithTitle:@"Test"
message:@"app switcher appeared."
delegate:self
cancelButtonTitle:@"OK"
otherButtonTitles:nil];
[testAlert show];
[testAlert release]; //for non-arc
%end
注意: 正确的类是 SBAppSliderController 如果您需要在 AppSwitcher 出现时做某事;)
【讨论】:
我尝试用“CHLoadClass”替换“CHLoadLateClass”,但它不起作用。如果我在尝试构建它时尝试进行徽标调整,这是我得到的错误:“架构 armv7 的未定义符号:“_MSHookMessageEx”,引用自:_logosLocalInit() ld:未找到架构 armv7 的符号clang:错误:链接器命令失败,退出代码为 1(使用 -v 查看调用)"以上是关于iOSOpenDev 跳板的主要内容,如果未能解决你的问题,请参考以下文章