我还没有找到使用iPhone库中使用私人API所需的步骤的全面列表。

特别是,我想知道如何获取标头文件,甚至需要它们,即如何进行编译(当我简单地添加标头时,它会抱怨函数未定义),以及一个人可以使用什么资源用于了解私人API(例如,来自其他用户的经验,例如 http://iphonedevwiki.net/ 有几个)。

我在人们建议使用的其他地方读过 班级 获取标题。有其他方法吗?我注意到有 一些存储库 在iPhone Private SDK中,您推荐的最新资源是什么?

大部分的 以前的 问题 关于私人API的文档,都链接到 埃里卡·萨通(Erica Sadun)的网站, ,似乎不再有文档(左边的所有链接都划出了)。

请保存有关不使用私人API的评论...我知道最大的风险:

  • 应用将被苹果拒绝。
  • 应用程序将在将来的OS更新中破坏。

我说的是合法用途,例如:

  • 私人应用程序使用(例如用于单元测试或四处乱逛以查看可能的)
有帮助吗?

解决方案

Objective-C在编译的二进制中具有足够的信息,几乎完全重建了标题。唯一缺少的是参数名称,通常可以从类型或方法原型以及某些结构和枚举定义中近似。这就是为什么像班级像班级这样的程序是获取标题的最佳方法的原因。它们是全面的,包括无论是否在实际标题中,最新的,不需要分发的每种方法。获取标题的另一种方法是查看同一框架的公共版本,例如,WebKit仅在iPhone上是私有的,否则就会有充分的文献记载。

如果您对Expocient-C以外的事物感兴趣,那么您几乎必须以老式的方式做到这一点,并通过拆卸来猜测功能参数。一旦获得了几个符号,请搜索它们,也许您会发现别人已发布的标题。 Otool是一个很好的起点。

如果包含标题,无论是Objective-C还是C,则必须像其他任何标题一样,包括标题声明方法的框架或库。大多数Objective-C内容都位于常规Frameworks文件夹旁边的PrivateFrameworks文件夹中。您可以在USR/LIB文件夹中查找库。

请注意,模拟器和设备之间存在很多差异,因此请确保您从真实设备构建标头。还有一些方法,您将无权作为沙盒应用程序运行。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top