现在苹果正在运行某种静态分析来自动检查私有API的使用情况,由于Three20库,一些人已经被抓住了。我使用另一个第三方库(我从代码中自己编译),我希望在提交给苹果之前自动审核它的私有API使用情况,以便我可以消除/重写那些部分。
如果我在应用程序可执行文件上运行nm
,我会得到一个符号列表,并且我看到其中一些符号是我没有使用的。例如,我看到 _AudioServicesPlaySystemSound,如果我在XCode中搜索“AudioServicesPlaySystemSound”,我将得不到任何结果。是否有任何方法可以自动区分对私有API的调用,例如我注意到苹果习惯以初始下划线命名它们。
然而:如果我故意包含对私有API的调用,它不会出现在nm
的输出中,但它会出现在二进制文件上运行 strings
命令的输出中。基于此,我想到了一个想法,即编译一个所有私有API调用的大表格,并自动在字符串输出中搜索它们。我还没有做到这一点。
有人有任何提示可以自动捕捉这些内容,以便我只需要经过一次审核过程吗?