【问题标题】:iOS app - find (unknown) private api callsiOS 应用程序 - 查找(未知)私有 api 调用
【发布时间】:2014-01-23 20:14:26
【问题描述】:

我们在 iTunes 上有一个应用程序,它在 iTunes 中收到一条警告,指出它使用了未记录的 api 调用:

reateScreenIOSurface
IOSurfaceAcceleratorCreate
IOSurfaceAcceleratorTransferSurface
IOServiceGetMatchingService
IOMobileFramebufferOpen
IOMobileFramebufferGetLayerDefaultSurface
kIOMasterPortDefault
IOServiceMatching
IOObjectRelease
IOServiceClose

这些都来自IOSurface api,它适用于 Mac OSX,但是,我在我们的应用程序中找不到任何这些 cal。我的猜测是我们正在使用的第三方框架之一就是问题所在。 该应用有 3 个框架可以使用这些 API:Aviary、Sincerely 和 Pritnzel。

无论如何,我的问题是,我怎样才能找到这些 api 的真正使用位置(以及是否)? 我在应用程序二进制文件以及 3 个框架(以及应用程序使用的任何其他第三方框架)上使用了 nm -uotool -L,但没有任何运气。

非常感谢

【问题讨论】:

  • 最简单的方法是使用文本编辑器打开二进制文件并搜索IOSurface.framework

标签: ios iphone app-store-connect iphone-privateapi


【解决方案1】:

我相信您甚至不必为此使用 nm 或工具。只需使用 grep 在 frameworks 目录中搜索提及这些 API。

但是,使用 nm 和 tool 找不到这很奇怪,尤其是在您的二进制文件中。

顺便说一句。也尝试用 grep 搜索“IOSurface”。它是一个定义这些方法的框架。

【讨论】:

  • 谢谢。我设法通过在文本编辑器中搜索构建文件,在旧版本中找到它。
  • 顺便说一句,这些方法被“Lookback”框架使用,它也留在了发布版本中。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-10-25
  • 1970-01-01
  • 2023-03-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-11-11
相关资源
最近更新 更多