http://developer.apple.com/library/mac/#documentation/MacOSX/Conceptual/BPFrameworks/Tasks/ExportingInterfaces.html
。シンボルが多い出荷用フレームワークでは、実行時にパフォーマンスの問題が発生する可能性があります。フレームワークがロードされると、ダイナミックリンクエディタはフレームワークに関連付けられたシンボルをロードします。フレームワークに多数のプライベート関数が含まれている場合、それらのプライベート関数のシンボルは使用されず、パブリック関数のシンボルと共にロードされます。これらの余分なシンボルをロードするだけでなく、メモリを浪費するだけでなく、シンボルルックアップ中にリストを移動するために多くの作業が必要になります。
Xcodeでは、リンカオプションでエクスポートファイルを指定することによって、実行可能ファイルによってエクスポートされるシンボルを制限できます。
アンエクスポートファイルをファイルあなたの輸出を作成
エクスポートするシンボルのリストを含む単純なテキストファイル(.txtまたはその他のテキストファイルの拡張子)です。ファイルを作成するには、新しい空のファイルをXcodeプロジェクトに追加します。このファイルに、エクスポートするシンボルのリストを1行に1つずつ追加します。
ANSI Cベースのコードでは、通常、シンボル名を取得するために関数または変数の名前にアンダースコアを前置することができます。変更されたシンボル名を使用するC++のような言語では、nmツールを実行して既存のシンボル名のリストを取得する必要があります。 nmを-gオプションで実行すると、現在エクスポートされているシンボルが表示されます。ツールの出力をコピーしてエクスポートファイルに貼り付けることで、無関係な情報を削除することができます。次のテキストは、NMによって生成されたCocoaフレームワークのためのいくつかのサンプル出力を示しています
_InitCocoaFW
_addNumbers
_getInitDate
:
U .objc_class_name_NSDate
b000ad54 T _InitCocoaFW
b000aea8 T _addNumbers
b000ade8 T _getInitDate
U _objc_msgSend
この出力で指定されたフレームワークの機能をエクスポートするには、このテキストを持つテキストファイルを作成します