iPhone SDKの静的ライブラリ

最近、iPhone SDKで静的ライブラリを作成する必要に遭遇しました。 このプロセスの文書化が不十分であることがわかったため、iPhone SDKで静的ライブラリを作成および使用するための段階的なガイドを提供します。





静的ライブラリの作成



静的ライブラリを作成するプロセスを説明するために、記事「iPhone SDKで静的ライブラリを構築する」の資料と個人的な経験を使用しました。



開始点:機能の一部を別のライブラリに転送する完成したプロジェクト。



1)Xcodeプロジェクトの[ターゲット]セクションで、右クリックして新しいターゲットを追加します。



画像



開いたウィンドウで、静的ライブラリを選択します。



画像



TestStaticLibなどのライブラリ名を設定します。



2)既存の.mファイルをライブラリに転送します。 .hファイルを追加する必要はありません。



画像



3)プロジェクトからライブラリに転送したファイルを削除します。



画像



4)アプリケーションのプロパティの[全般]タブでライブラリへのリンクを追加します。



画像



注:ライブラリのソースコードで何かを変更する場合は、最初にそれを再コンパイルし、次にアプリケーション自体を再コンパイルする必要があります。 ライブラリをリンクライブラリではなく直接依存関係に追加する場合、ライブラリを手動で再コンパイルする必要はありません。



5)[リンク]セクションの[ビルド]タブで、[- ObjC]フラグを[ その他のリンカーフラグ ]に追加します。 これは、静的ライブラリでアプリケーションが使用するObjective-Cクラスを定義している場合にのみ必要です。



画像



注: 「-ObjC」フラグは、ライブラリにObjective-C固有のものがない限り、特に重要ではありませんが、クラスのカテゴリなど、ライブラリに追加すると、実行時例外がすぐに発生します。 理由は、リンカに-ObjCフラグがないことです。 これについては、 ここで詳しく説明します



6)ライブラリをコンパイルします。



7)アプリケーションをコンパイルします。



一般的なコメント:



1.ライブラリがコンパイルされたら、ソースコードをライブラリから削除できます。

2.ライブラリとそれを使用するアプリケーションが異なるターゲット用にコンパイルされている場合(たとえば、ライブラリがシミュレータ用にリリースされ、アプリケーションがデバイス用にデバッグされている場合)、おそらくコンパイルエラーが発生します。 このような場合、いくつかのライブラリオプションを使用するか、同じターゲット用にコンパイルする必要があります。

3.ライブラリをコンパイルした結果、拡張子が.aのファイルを取得します-これが静的ライブラリです。



新しいアプリケーションでライブラリを使用する



1)。 LinkingLibraryDemoなどの新しいアプリケーションを作成します。



画像



2)。 * .aライブラリを追加します([追加]、[既存のファイル]、[ファイルに移動]、[対象グループのフォルダーにアイテムをコピー(必要な場合)]チェックボックスをオンにします)。



画像



3)。 ターゲットに移動してダブルクリックします-ターゲット情報ウィンドウが開きます。 [ リンクライブラリ ]セクションの[ 全般 ]タブに、プラグインライブラリが表示されます。



画像



4)。 [ リンク ] セクションの [ ビルド ]タブで、[– ObjC]フラグを[ その他のリンカーフラグ ]に追加します



画像



5)。 必要なすべての* .hファイルをプロジェクトに追加します。



これらの手順の後、ライブラリを使用できます。



PS一見すると、すべてが非常に単純に見えるかもしれませんが、静的ライブラリを使用することの微妙な違いを理解するために、長い間いじくり回さなければなりませんでした。 この記事が時間の節約に役立つことを願っています。



ご清聴ありがとうございました!



All Articles