アップルは、プライベートAPIの使用を自動的にチェックするために何らかの静的解析を実行しているので、Three20ライブラリのために多数の人がキャッチされています。私は別のサードパーティのライブラリ(コードから自分自身をコンパイルする)を使用しています。私はアップルに提出する前にプライベートAPIの使用を自動的に監査したいので、その部分を削除/書き直すことができます。サードパーティのライブラリでのプライベートAPIの使用の検出と回避方法
実行可能ファイルにnm
を実行すると、シンボルのリストが表示され、そこに使用していないシンボルが表示されています。例えば、私は_AudioServicesPlaySystemSoundを見て、XCodeで "AudioServicesPlaySystemSound"を検索しても結果は得られません。プライベートAPIへの呼び出しを自動的に区別する方法はありますか?たとえば、Appleに最初のアンダースコアで名前を付ける習慣があることに気づくなどです。
ただし、意図的にプライベートAPIの呼び出しを含めると、出力にはnm
は表示されませんが、バイナリにstrings
を実行すると表示されます。これに基づいて、私が持っていた1つのアイデアは、すべてのプライベートAPI呼び出しの巨大なリストを巨大なテーブルにコンパイルし、文字列出力でそれらを自動的に検索することでした。私はまだそれをしていない。
誰もが自動的にこの情報をキャッチするためのヒントを持っていますので、私は一度だけレビュープロセスを行っていますか?
彼らはThree20に反対していますか?これは実際には、iPhone向けFacebookアプリを開発した開発者によって書かれたものです。あなたのアプリがThree20のために拒否された場合は、Facebookアプリもあまりにも... Heh。ちょうどスティン;-) –
うん... http://groups.google.com/group/three20/browse_thread/thread/c442af6e39a918b0/6d5046771539d139 –
次回は、Facebookがアップデートを提出したら拒否されるAppleのポリシーに準拠した最新のバージョンは使用していません。 – bpapa