您的位置:首页 > 其它

关于苹果私有API的使用

2015-11-27 18:40 369 查看
自xcode7开始苹果将一些静态库转成了.tbd格式,根据苹果员工的解释,之所以转成.tbd格式,是要提供更加紧凑的静态库,更重要的是减少下载包的大小,(https://forums.developer.apple.com/message/9176#9176)。表面上似乎确实是这样,但是去看看private frameworks后就瞬间明白了。所有的private frameworks都被改成了.tbd文件,头文件是做什么用的呢?头文件其实就是用来暴露接口的。这就意味着苹果不想让我们调用这些.h,使不能通过加入私有库直接调用这些私有API了。
但是如果找到了别人导好的头文件,可以通过动态加载代码的方法调用私有API。(https://github.com/nst/iOS-Runtime-Headers/blob/3686717e107fa36a990fac20c30da2da9a25b698/PrivateFrameworks/PhotoLibrary.framework/PLPhotoLibrary.h)


NSBundle *b = [NSBundle bundleWithPath:@"/System/Library/PrivateFrameworks/Message.framework"];
BOOL success = [b load];

Class NetworkController = NSClassFromString(@"NetworkController");
id nc = [NetworkController sharedInstance];
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: