現在,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