Frameworks 如何制作;SBAwayController*控制器=[objc_getClass(“SBAwayController”)SharedAyController];工作?;

Frameworks 如何制作;SBAwayController*控制器=[objc_getClass(“SBAwayController”)SharedAyController];工作?;,frameworks,private,Frameworks,Private,我想检查屏幕是否被私有api锁定 我从谷歌那里得到了一些代码: #import <SpringBoard/SpringBoard.h> #import <SpringBoard/SBAwayController.h> Class clsAway = objc_allocateClassPair(clsAlert, "SBAwayController", 0); objc_registerClassPair(clsAway); Class clsAwayContro

我想检查屏幕是否被私有api锁定

我从谷歌那里得到了一些代码:

#import <SpringBoard/SpringBoard.h>  
#import <SpringBoard/SBAwayController.h>

Class clsAway = objc_allocateClassPair(clsAlert, "SBAwayController", 0);
objc_registerClassPair(clsAway);

Class clsAwayController = objc_getClass("SBAwayController");
SBAwayController * controller = [clsAwayController sharedAwayController];

if ([controller isLocked]){
    NSLog(@"double check Home ,now YES Lock");
}
else{
    NSLog(@"double check Home ,now NO Lock");
}
出现错误:'+[SBAwayController SharedAyController]:无法识别的选择器已发送到类0x1456c0'

要使这些代码正常工作,我还需要做其他工作吗?
我知道使用私有api可能会导致苹果的拒绝,但我只想知道如何让它工作。谢谢你的建议

我相信iOS 5中删除了SBAwayController。我检查了SpringBoard,它只有这门课的回忆。

SBAwayController没有在iOS 5中删除。你怎么能期望从另一个过程中使用跳板方法?跳板不是一个框架。这是一个可执行文件。

维克托错了。该类仍然存在于iOS 6中

cy# c = SBAwayController.sharedAwayController;
@"<SBAwayController: 0x1c510580> <SBActivationContext: 0x1c50be50> activate:  deactivate: "

cy# printMethods(SBAwayController);
[{selector:@selector(hasEverBeenLocked),implementation:0x109c49},{selector:@selector(activateLostModeForRemoteLock:),implementation:0x116505},{selector:@selector(unlockWithSound:),implementation:0x110835},{selector:@selector(frontLocked:animate:automatically:),implementation:0x1120d5},{selector:@selector(cancelDimTimer),implementation:0x11291d},{selector:@selector(activeAwayPluginController),implementation:0x116885},{selector:@selector(shouldShowInCallUI),implementation:0x116111
...
cy#c=SBAwayController.sharedAwayController;
@“激活:停用:”
cy#打印方法(SBAwayController);
[{选择器:@selector(hasEverBeenLocked),实现:0x109c49},{选择器:@selector(ActivateLostModelForRemoteLock:),实现:0x116505},{选择器:@selector(unlockWithSound:),实现:0x110835},{选择器:@selector(frontLocked:动画:自动:),实现:0x1120d5},{选择器:@selector(cancelDimTimer),实现:0x11291d},{选择器:@selector(activeAwayPluginController),实现:0x116885},{选择器:@selector(shouldshowincalui),实现:0x116111
...

您使用了什么工具来反编译可执行文件?类转储?我转储了一个iOS7 SpringBoard可执行文件,但也找不到该头文件。我使用了Hopper反汇编程序。我没有转储.h文件,但可以看到反汇编的代码。
cy# c = SBAwayController.sharedAwayController;
@"<SBAwayController: 0x1c510580> <SBActivationContext: 0x1c50be50> activate:  deactivate: "

cy# printMethods(SBAwayController);
[{selector:@selector(hasEverBeenLocked),implementation:0x109c49},{selector:@selector(activateLostModeForRemoteLock:),implementation:0x116505},{selector:@selector(unlockWithSound:),implementation:0x110835},{selector:@selector(frontLocked:animate:automatically:),implementation:0x1120d5},{selector:@selector(cancelDimTimer),implementation:0x11291d},{selector:@selector(activeAwayPluginController),implementation:0x116885},{selector:@selector(shouldShowInCallUI),implementation:0x116111
...