iOS 7专用API使用

昨天我试图在iOS 7中使用Private API,但它不起作用.
以下电话适用于iOS 6:
1. NSBundle *b = [NSBundle bundleWithPath:@"/System/Library/PrivateFrameworks/AppleAccount.framework"];
2. BOOL success = [b load];
3.
4. Class AADeviceInfo = NSClassFromString(@"AADeviceInfo");
6.
7. NSLog(@"-- serialNumber: %@",[AADeviceInfo serialNumber]);
8. NSLog(@"-- udid: %@",[AADeviceInfo udid]);

在iOS 7中使用此代码段时,它返回一个空指针.
框架,类和方法依然存在(click me).
任何想法我的问题?是否有额外的安全层,使得不再可能在iOS 7中调用私有API

谢谢!

解决方法

在大多数情况下,这种行为意味着此API将受到权利的保护.这是跨iOS使用的授权方法. API的大部分呼叫进程服务器.而这个服务器可能会检查一个客户端是否具有一些特定的权利.授权仅适用于越狱iOS上的系统应用程序和第三方应用程序.

没有简单的方法来检查服务器是否需要授权.但是,有时它会在控制台中写入“嘿…您需要授权X来调用API Y”.但是,大多数时候,它地失败了.

如果你真的想检查这个,你将不得不反汇编框架,看看它使用哪个服务器,并反汇编服务器并查找这个API的实现.

相关文章

UITabBarController 是 iOS 中用于管理和显示选项卡界面的一...
UITableView的重用机制避免了频繁创建和销毁单元格的开销,使...
Objective-C中,类的实例变量(instance variables)和属性(...
从内存管理的角度来看,block可以作为方法的传入参数是因为b...
WKWebView 是 iOS 开发中用于显示网页内容的组件,它是在 iO...
OC中常用的多线程编程技术: 1. NSThread NSThread是Objecti...