Apple が何らかの静的分析を実行してプライベート API の使用を自動的にチェックするようになった現在、Three20 ライブラリが原因で多くの人が逮捕されています。別のサードパーティ ライブラリ (コードから自分でコンパイルしたもの) を使用しており、Apple に送信する前にプライベート API の使用を自動的に監査して、それらの部分を削除/再書き込みできるようにしたいと考えています。
アプリケーションの実行可能ファイルを実行するnm
と、シンボルのリストが表示され、そこに使用していないシンボルが表示されます。たとえば、_AudioServicesPlaySystemSound が表示され、XCode で「AudioServicesPlaySystemSound」を検索しても結果が得られません。プライベート API の呼び出しを自動的に区別する方法はありますか。たとえば、Apple では名前の最初にアンダースコアを付ける習慣があることに気付きました。
ただし、プライベート API への呼び出しを意図的に含めると、の出力には表示されませんが、バイナリnm
で実行すると表示されます。strings
これに基づいて、すべてのプライベート API 呼び出しの巨大なリストを巨大なテーブルにコンパイルし、文字列出力でそれらを自動的に検索するという 1 つのアイデアがありました。私はまだそれをしていません。
このようなものを自動的にキャッチする方法に関するヒントを誰かが持っているので、レビュープロセスを一度だけ実行しますか?