iOS如何使用私人API?

我不想将这个应用程序提交给AppStore。 我尝试了很多次,但遇到这么多问题:(

我使用类转储来获取UIKit.framework的所有头文件。 在由class-dump生成的UIApplication.h中,我看到了我想要使用的方法—- launchApplicationWithIdentifier。

然后我把UIApplication.h放到我的项目中并导入。 编译,我得到了很多“重新定义枚举器….”错误,因为在我使用的UIKit.framework中,有另一个UIApplication.h。 但是这个文件没有launchApplicationWithIdentifier方法。

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

然后,我想使所有生成的头文件的框架文件ant取代以前的UIKit.framework。 但我不知道如何。 正如我们所看到的,在系统框架目录下,有一个和框架名称相同的文件,并有一个“执行shell脚本”图标。 我怎样才能做这个文件?

我真的很困惑。 有人可以帮我一把吗? 谢谢。

只需在类实现上面的类实现中指定私有方法,就可以使用它,如下所示:

@interface UIApplication (Private) - (BOOL)launchApplicationWithIdentifier:(id)identifier suspended:(BOOL)suspended; @end 

不要导入整个类转储文件,并链接到原始的UIKit框架。

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

检查方法是否真的存在与respondsToSelector:在运行时,并准备好它不存在的情况。

我在我自己的应用程序中使用了一个秘密的MapKitfunction,我知道私有方法只存在于iOS 5.所以我的应用程序仍然适用于所有的iOS版本,但是这个function只在iOS 5中可用(苹果在iOS 6中删除或更改了它beta 1)。