现在,Apple 正在运行某种静态分析来自动检查私有 API 的使用,许多人因为 Three20 库而被捕。我使用另一个第三方库(我自己从代码编译),我想在提交给 Apple 之前自动审核它以供私有 API 使用,这样我就可以消除/重新编写这些部分。
如果我nm
在我的应用程序可执行文件上运行,我会得到一个符号列表,并且我会在其中看到我不使用的符号。例如,我看到 _AudioServicesPlaySystemSound,如果我在 XCode 中搜索“AudioServicesPlaySystemSound”,我没有得到任何结果。有什么方法可以自动区分对私有 API 的调用,例如我注意到 Apple 习惯用初始下划线命名它们。
但是:如果我故意包含对私有 API 的调用,它不会显示在 的输出中nm
,但如果我strings
在二进制文件上运行,它会显示。基于此,我的一个想法是将所有私有 API 调用的巨大列表编译成一个巨大的表,并在字符串输出中自动搜索它们。我还没有这样做。
有没有人有关于如何自动捕捉这些东西的任何提示,所以我只经历一次审查过程?