现在,Apple正在运行某种静态分析来自动检查私有API的使用情况,由于Three20库的存在,许多人已被捕获。我使用另一个第三方库(我从代码编译我自己),我想在提交给Apple之前自动对它进行审核以供私有API使用,以便我可以删除/重写这些部分。如何检测和避免在第三方库中使用私有API
如果我在我的应用程序可执行文件上运行nm
,我得到一个符号列表,我看到那里没有使用的符号。例如,我看到_AudioServicesPlaySystemSound,并且如果我在XCode中搜索“AudioServicesPlaySystemSound”,则不会得到任何结果。有没有什么办法可以自动区分对私有API的调用,例如我注意到Apple有习惯用初始下划线对它们进行命名。
但是:如果我故意将一个调用包含到私有API中,它不会显示在nm
的输出中,但是如果我在二进制文件上运行strings
,它会显示出来。基于此,我的一个想法是将所有私有API调用的庞大列表编译成一个巨大的表格,并自动在字符串输出中搜索它们。我还没有这样做。
有没有人有关于如何自动捕捉这些东西的任何提示,所以我只通过审查过程一次?
他们反对Three20?这实际上是由为iPhone创建Facebook应用程序的开发人员编写的。如果您的应用因Three20而被拒绝,Facebook应用应该也是如此...... heh。只是说;-) – 2009-12-08 01:04:49
是的... http://groups.google.com/group/three20/browse_thread/thread/c442af6e39a918b0/6d5046771539d139 – 2009-12-08 02:25:35
我想象下一次Facebook提交更新时,他们将被拒绝如果他们不使用符合Apple政策的最新版本。 – bpapa 2009-12-08 04:26:56