OGeek|极客世界-中国程序员成长平台

标题: ios - 如何使用私有(private)系统 API? [打印本页]

作者: 菜鸟教程小白    时间: 2022-12-13 05:57
标题: ios - 如何使用私有(private)系统 API?

我想使用私有(private)/隐藏的 iOS 方法,例如 SpringBoard 类 ( example here ) 中的 clearIdleTimer。我该怎么做呢?许多信息引用了更旧的 iOS 版本。

这只是为了实验,我知道私有(private) API 未经 App Store 批准。另外,我的 iOS 设备已注册开发但未越狱。

编辑:我找到了这些 iOS-Runtime-Headers但样本对我不起作用。



Best Answer-推荐答案


并非所有私有(private) API 都是相同的。

其中一些您可以在任何应用程序中使用...您只是不会让它们批准进入 App Store。

其中一些您可以使用,但前提是您的应用程序以 root 权限运行,这需要越狱手机 (plus other steps)。

其中一些你可以使用,但你需要grant your app an entitlement ,我相信这也需要越狱手机。

对于这个 API:

@interface SpringBoard <UIApplicationDelegate, SBWiFiManagerDelegate>
{
}
- (void)clearIdleTimer;

您正在尝试直接调用 SpringBoard 应用程序 中的方法。您通常不能直接调用其他应用程序的方法。

可以这样做的一种方法是使用 Mobile Substrate (now called Cydia Substrate) .这是一个强大的代码注入(inject)平台,允许您挂接到 SpringBoard 应用程序,并使用 clearIdleTimer。但是,使用 Mobile/Cydia substrate 需要对您的手机进行越狱。

某些 SpringBoard 类型的功能被设计为由其他应用程序调用,这些功能位于 SpringBoardServices 中,这与 SpringBoard 应用程序不同。您可以尝试在 SpringBoardServices 中搜索等效功能。这些 API 是私有(private)的,但可能不需要越狱(我不记得了……我的手机已经越狱了,所以我不必担心)。

我怀疑不是你想要的答案

关于ios - 如何使用私有(private)系统 API?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21146713/






欢迎光临 OGeek|极客世界-中国程序员成长平台 (http://sqlite.in/) Powered by Discuz! X3.4