一组三个问题,最后一个是期望的目标:
1) 可以使用 GraphicsServices 方法并从私有(private)框架链接二进制文件。为什么不能用 SpringBoard SBUIController 做类似的事情?
2)不越狱就不能使用SBUIController吗?
3) 如何在 iOS 6 上通过 bundle ID 启动应用程序(通过私有(private) API 但无需越狱)?
最佳答案
应用程序与框架
GraphicServices 是框架。它专门设计用于链接到第 3 方应用程序并由其用户使用。我记得 SBUIController 是 Springboard 的一部分,它是独立的应用程序(并非设计为链接到)
即使在这种情况下,如果您能够以某种方式从 Springboard 链接/加载代码,该代码将无法运行,因为您缺少与其他服务通信的权利。
权利
越狱允许您将代码注入(inject)第 3 方应用程序(包括 Springboard),这样代码在 Springboard 中执行并具有适当的权利。
实际上,对于越狱设备,您可以为您的代码添加权利并对其进行签名。但是,您无法对未越狱的设备执行此操作。
所以,我想说,对于非越狱设备,您应该放弃 SBUIController 方法。
尝试启动应用
大约半年前我有同样的问题,我花了很多时间在这个问题上。我尝试了以下事情但没有成功:
- SBSLaunchApplicationWithIdentifier
- SBReturnToPreviousAppAtSpecifiedTime
- 尝试使用 BKSWorkspace
和其他一些方法。
一些额外的想法
如果第 3 方应用程序处理某些 URL 方案,您可以使用它来启动此第 3 方应用程序。
关于iOS 私有(private) API - 通过 bundle ID 启动应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16408854/