我们在iTunes上有一个应用程序,它在iTunes中收到一条警告:它使用了未记录的api调用:
reateScreenIOSurface
IOSurfaceAcceleratorCreate
IOSurfaceAcceleratorTransferSurface
IOServiceGetMatchingService
IOMobileFramebufferOpen
IOMobileFramebufferGetLayerDefaultSurface
kIOMasterPortDefault
IOServiceMatching
IOObjectRelease
IOServiceClose
这些都来自IOSurface api,适用于Mac OSX,但是,我在我们的应用程序中找不到任何这些cals。我的猜测是我们使用的第三方框架之一就是问题所在。 该应用程序有3个框架,可以使用这些apis:Aviary,Sincerely和Pritnzel。
无论如何,我的问题是,如何找到真正使用这些api的位置?
我在app二进制文件以及3个框架(以及应用程序使用的任何其他第三方框架)上使用了nm -u
和otool -L
,没有任何运气。
非常感谢
答案 0 :(得分:1)
我相信你甚至不必使用nm或工具。只需使用grep来搜索框架目录中提到的这些API。
然而,奇怪的是你找不到使用nm和工具,特别是你的二进制文件。
顺便说一句。尝试grep“IOSurface”。这是一个定义这些方法的框架。