Creating トップ New World トップ Programming Room トップ Variousible ホーム

フレームワークの作成

2004/05/01

アプリケーションを作成する... さて、アプリケーションを作成する際には、 機能などを基準にいくつかのモジュールに分けて作成するでしょう。 大きなまとまりはライブラリとして作成することが多いと思います。 そこで、Mac OS X におけるライブラリ... フレームワークの作成について扱います。

プロジェクトの作成

フレームワークを構築するために、まず Xcode を起動し、プロジェクトを作成します。 Xcode のメニューより、[ファイル] - [新規プロジェクト...] を選択します。

プロジェクトの作成 1

Cocoa Framework を選択し、[次へ] をクリックします。

プロジェクトの作成 2

適当なディレクトリとプロジェクト名を指定して、プロジェクトウィザードを完了します。 ここで指定したプロジェクト名はデフォルトでフレームワーク名としてそのまま使用されます。

ソースの追加

プロジェクトを作成したら、フレームワークの実装を行います。 ここでは仮に一つのクラスを追加します。 「グループとファイル」のプロジェクトのコンテキストメニューから、 [追加] - [新規ファイル...] を選択します。

クラスの追加 1

Cocoa の Objective-C class を選択します。

クラスの追加 2

[次へ] をクリックしてクラスについての設定を行います。通常はクラス名に ".m" をつけたファイル名を指定しておけばよいでしょう。 必要に応じて保存場所を変更します。

クラスの追加 3

ここでは簡単なメソッドひとつだけを定義しておきます。

SrcA.h
#import @interface SrcA : NSObject { } + (int)plus:(int)x and:(int)y; @end
SrcA.m
#import "SrcA.h" @implementation SrcA + (int)plus:(int)x and:(int)y { return x + y; } @end

プロジェクトの設定

「グループとファイル」のプロジェクトを選択し、 コンテキストメニューから [情報を見る] を選択します。

プロジェクトの設定

ゼロリンクはそのままでも良いのですが、 正しくフレームワークが読み込まれなかった時に、 そのことが明確にわかるようにとりあえず off にしておきます。

ターゲットの設定

次に、ターゲットの設定を行います。「グループとファイル」 のターゲット設定項目のコンテキストメニューから、[情報を見る] を選択します。

ターゲットの設定 1

ターゲットの設定ではインストールパスという重要な設定項目があります。 フレームワークをアプリケーションにバンドルして配布する場合、 ターゲットの設定を変更する必要があります。 一方フレームワークを使用するコンピュータにインストールする場合であれば、 特に変更は必要ありません。 共有ライブラリの配布が目的であれば、そのままで良いわけです。

ここでは、アプリケーションにフレームワークをバンドルする場合に 必要な設定を説明します。上のように、インストールパスに @execute_path/../frameworks/ を設定します。また、 インストールをスキップの項目のチェックをはずします。

このような設定をおこなうと、 フレームワークはアプリケーションバンドルの frameworks ディレクトリ以下にコピーすることになります。 これについては次のアプリケーション作成で説明します。

さらにフレームワークを作成する際にターゲットの設定でもうひとつ 忘れてはならないことがあります。ライブラリのヘッダファイルを公開することです。 デフォルトのままフレームワークをビルドすると作成されたフレームワークには ヘッダが含まれません。これを含めるようにするには、「グループとファイル」 のターゲットの設定項目のツリーを開き、ヘッダファイルのグループを開きます。 ライブラリに含めたい公開するヘッダファイルの役割の項目を public に変更します。 これで、ビルド後のフレームワークにヘッダが含まれるようになります。

ターゲットの設定 2
Creating トップ New World トップ Programming Room トップ Variousible ホーム
※Mac OS is a trademark of Apple Computer, Inc., registered in the U.S. and other countries.
※Xcode is a trademark of Apple Computer, Inc., registered in the U.S. and other countries.
※Cocoa is a trademark of Apple Computer, Inc., registered in the U.S. and other countries.
※その他の登場する製品名は、各社の商標または登録商標です。
本サイトについて
Copyright © 2004 KURIHARA, Yusuke