ios - 如何使用私有(private)系统 API?
<p><p>我想使用私有(private)/隐藏的 iOS 方法,例如 <code>SpringBoard</code> 类 ( <a href="https://stackoverflow.com/a/17863537/119114" rel="noreferrer noopener nofollow">example here</a> ) 中的 <code>clearIdleTimer</code>。我该怎么做呢?许多信息引用了更旧的 iOS 版本。</p>
<p>这只是为了实验,我知道私有(private) API 未经 App Store 批准。另外,我的 iOS 设备已注册开发但未越狱。</p>
<p>编辑:我找到了这些 <a href="https://github.com/nst/iOS-Runtime-Headers" rel="noreferrer noopener nofollow">iOS-Runtime-Headers</a>但样本对我不起作用。</p></p>
<br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
<p><p>并非所有私有(private) API 都是相同的。 </p>
<p>其中一些您可以在任何应用程序中使用...您只是不会让它们<em>批准</em>进入 App Store。</p>
<p>其中一些您可以使用,但前提是您的应用程序以 <code>root</code> 权限运行,这需要越狱手机 (<a href="https://stackoverflow.com/a/8796556/119114" rel="noreferrer noopener nofollow">plus other steps</a>)。</p>
<p>其中一些你可以使用,但你需要<a href="https://stackoverflow.com/a/14885266/119114" rel="noreferrer noopener nofollow">grant your app an <em>entitlement</em></a> ,我相信这也需要越狱手机。</p>
<p>对于这个 API:</p>
<pre><code>@interface SpringBoard <UIApplicationDelegate, SBWiFiManagerDelegate>
{
}
- (void)clearIdleTimer;
</code></pre>
<p>您正在尝试直接调用 SpringBoard <em>应用程序</em> 中的方法。您通常不能直接调用其他应用程序的方法。 </p>
<p>您<em>可以</em>这样做的一种方法是使用 <a href="http://iphonedevwiki.net/index.php/MobileSubstrate" rel="noreferrer noopener nofollow">Mobile Substrate (now called Cydia Substrate)</a> .这是一个强大的代码注入(inject)平台,允许您挂接到 SpringBoard 应用程序,并使用 <code>clearIdleTimer</code>。但是,使用 Mobile/Cydia substrate 需要对您的手机进行越狱。</p>
<p>某些 SpringBoard 类型的功能被设计为由其他应用程序调用,这些功能位于 <code>SpringBoardServices</code> 中,这与 SpringBoard 应用程序不同。您可以尝试在 SpringBoardServices 中搜索等效功能。这些 API 是私有(private)的,但<em>可能</em>不需要越狱(我不记得了……我的手机已经越狱了,所以我不必担心)。</p>
<p>我怀疑不是你想要的答案:(</p></p>
<p style="font-size: 20px;">关于ios - 如何使用私有(private)系统 API?,我们在Stack Overflow上找到一个类似的问题:
<a href="https://stackoverflow.com/questions/21146713/" rel="noreferrer noopener nofollow" style="color: red;">
https://stackoverflow.com/questions/21146713/
</a>
</p>
页:
[1]