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的实现.

相关文章

当我们远离最新的 iOS 16 更新版本时,我们听到了困扰 Apple...
欧版/美版 特别说一下,美版选错了 可能会永久丧失4G,不过只...
一般在接外包的时候, 通常第三方需要安装你的app进行测...
前言为了让更多的人永远记住12月13日,各大厂都在这一天将应...