-->

iOS版如何使用私人API?(iOS How to use private API?)

2019-06-25 13:38发布

我不希望这个应用程序提交给AppStore的。 我试过很多次,但遇到如此多的问题:(

我使用类转储得到UIKit.framework的所有头文件。 在按类突降产生的UIApplication.h,我看到了我想用---- launchApplicationWithIdentifier的方法。

然后,我把UIApplication.h在我的项目,将其导入。 编译,我得到了很多的“枚举的重新定义......”的错误,因为我用以前的UIKit.framework,还有另一种UIApplication.h。 但该文件没有方法launchApplicationWithIdentifier。

如果我删除以前的UIKit.framework并导入由类转储生成的文件夹中。 然后,它看起来像一个框架,但如果我展开它,它是空的。

然后我要让所有生成的头文件框架文件蚂蚁取代先前UIKit.framework。 但我不知道怎么办。 正如我们所看到的,系统框架目录下,有具有相同的名称作为框架,具有“执行shell脚本”图标的文件。 我怎样才能使这个文件?

我真的糊涂了。 有人可以给我吗? 谢谢。

Answer 1:

只要指定在上面,你要使用它,像这样的类实现一个类别接口的私有方法:

@interface UIApplication (Private)

- (BOOL)launchApplicationWithIdentifier:(id)identifier suspended:(BOOL)suspended;

@end

不导入全班转储文件,并与原UIKit框架链接。

使用私有API时,你必须非常小心。 这些方法可以更改或在未来的iOS版本中删除!

检查方法真的存在respondsToSelector:在运行时为不存在的情况下进行制备。

我用了一个秘密MapKit功能在我自己的应用程序,我知道的是,私有方法只能在iOS的5存在,所以我的应用程序仍然可以在所有的iOS版本,但此功能仅适用于iOS 5中(苹果删除或在iOS 6中改变了它测试1)。



文章来源: iOS How to use private API?