Apple Developer Connection
高度な検索
Member Login ログイン | ご入会 ADC連絡先

Xcodeプロジェクトを理解する

Xcodeは、よく行うソフトウェア開発タスクを簡単かつすばやく、そして慣れ親しんでいる方法で行えるようにする強力な専門ツールです。しかしその能力は、1つのタイプのアプリケーションを作成するために必要な能力をはるかに超える強力なものです。Xcodeは、考えられるあらゆる種類のソフトウェアプロダクトを作成することが可能なように作られています。Cocoaアプリケーション、Carbonアプリケーションから、カーネル拡張やSpotlightインポータにいたるまで、Xcodeで扱うことができます。Xcodeの独特のインターフェイスは、ソースコードをさまざまな方法でナビゲートできるように作られています。また、GCC、javac、jikes、GDBなど、ソフトウェアプロダクトの作成に使用する一連の基盤ツール群の数多くの機能へのアクセスが可能になっています。Xcodeは、プロによって作られたプロのためのツールなのです。

Xcodeで可能なことのおかげで、XcodeはすでにMac開発者コミュニティに広く受け入れられています。そして、アップルが発表したインテルベースのMacintoshコンピュータへの移行に伴い、Xcodeへの移行は以前よりも重要になっています。これは、Universal Binary、つまり、PowerPCとインテルアーキテクチャの両方のネイティブコードを単一のパッケージに配置する実行可能ファイル形式の作成方法が、Xcodeを使用することだからです。実際、まだXcodeに移行していない開発者にとっては、移行することが、自分のアプリケーションをUniversal Binaryに移行する重要な第一歩となります。

Xcodeをしばらく使ってきた方も移行を始めたばかりの方も、Xcodeを十分に使いこなすには、Xcodeのユーザインターフェイスと、ユーザインターフェイスを使用してソフトウェアプロジェクトをまとめる方法を理解する必要があります。これを理解することは、Xcodeの背後にある考え方と仕組みの理解に大いに役立つほか、Xcodeを効果的に使用するための一助となります。

Xcodeプロジェクトの定義

Xcodeにおいては、ファイルの作成や編集からアプリケーションのビルドやデバッグにいたる作業は、すべてプロジェクトを中心に展開します。Xcodeプロジェクトは、ソフトウェアプロダクトの作成に使用するすべてのファイルとリソースをまとめ、それらへのアクセスを可能にします。何を作成するのかを問わず、Xcodeではプロダクトの作成に必要な次の3種類の情報が管理されます。

  • ソースファイル参照。ソースコード、イメージ、ローカライズされた文字列ファイル、データモデル、その他を含みます。
  • ターゲット。作成するプロダクトを定義します。ターゲットは、プロダクトの作成に必要なファイルと指示を、実行可能なビルドアクションのシーケンスとしてまとめます。
  • 実行可能環境。ソフトウェアプロダクトの実行とテストが可能な環境です。実行可能環境は、プロダクトの実行に使用するプログラムを定義します。多くの場合、これはプロダクト自身ですが、そうである必要はありません。また、実行可能環境は、使用する必要のあるすべてのコマンドライン引数と環境変数を定義します。

Xcodeプロジェクトのこの3つの要素は図1に示すような関係になります。

Xcodeにおけるソースファイル参照、ターゲット、実行可能環境の使われ方

図1:Xcodeにおけるソースファイル参照、ターゲット、実行可能環境の使われ方

「Build and Run」コマンド(Command-R)を実行すると、Xcodeはソースコードに対して一連のアクションを実行するターゲットを処理します。そして処理の結果、プロダクトが作られます。続いて、Xcodeはアクティブな実行可能環境を使用してプロダクトを実行します。

しかしここで疑問に思うかもしれません。「実行可能環境を用意しなければならないのはなぜ?プロダクトを直接実行してはいけないのか?」よい質問です。ビルドしたCocoaアプリケーションを実行するだけなら、実行可能環境を定義するのは行き過ぎかもしれません。しかし、プラグインのように、プロダクトを実行するためにホストアプリケーションを定義しなければならないプロダクトは多数あります。実行可能環境は、プロダクトをデバッガの中で実行する場合にも使用します。同じプロダクトを複数の異なる方法で実行するために複数の実行可能環境を定義することも可能です。

プロジェクトの「Groups & Files」リスト

プロジェクトを構成するソースファイル参照、ターゲット、および実行可能環境はすべて、Xcodeユーザインターフェイスの「Groups & Files」リストに表示されます。さて、以上で構成要素は明らかになったので、今度は「Groups & Files」リスト内の配置を見てみましょう。図2を参照してください。ここでは、DotViewサンプルアプリケーションを参考にします。

実際に自分でも確認することもできます。次のファイルを開くだけです:/Developer/Examples/AppKit/DotView/DotView.xcodeproj

「Group & Files」リストは多種多様な情報を簡潔なインターフェイスにまとめて表示する

図2:「Group & Files」リストは多種多様な情報を簡潔なインターフェイスにまとめて表示する

プロジェクト内のソースファイル参照をすべて表示できるのと同じように、プロジェクト内の各プロダクトを展開して、図3に示すようにその構成を知ることができます。

プロダクトを展開するとプロダクトのビルド済みコンポーネントが表示される(この例ではCocoaアプリケーション)

図3:プロダクトを展開するとプロダクトのビルド済みコンポーネントが表示される(この例ではCocoaアプリケーション)

同様に、ターゲットを展開してその内容を表示することもできます。ターゲットの内容は、プロダクトのビルド時に実行するステップです。これを図4に図示します。

ターゲットを展開するとプロダクトのビルド時に実行するステップが表示される

図4:ターゲットを展開するとプロダクトのビルド時に実行するステップが表示される

プロジェクトのナビゲーション

「Groups & Files」リストのソースコードファイル、プロジェクト、ターゲット、および実行可能環境のエントリの下には、プロジェクトの内容をナビゲートするための一連のツールがあります。これらのエントリは、スマートグループを形成し、FinderのスマートフォルダやiTunesのスマートプレイリストと同じように動作します。これらのツールを図5に示します。

Xcodeの「Groups & Files」リストには、プロジェクト内をナビゲートするためのツールがいくつか含まれている

図5:Xcodeの「Groups & Files」リストには、プロジェクト内をナビゲートするためのツールがいくつか含まれている

Xcodeを初めて使う方は、「Groups & Files」リストで利用できる多数の機能に圧倒されることがあります。単純なファイルのリストを使用する他の環境と比べた場合にはなおさらです。しかし、これらの項目を使用してできることに慣れてくれば、プロジェクトパネルはXcodeが提供するすべての機能が利用できる強力なツールとなります。

ソースファイル参照の詳細

Xcodeプロジェクトの基本的な構成要素を確認したところで、今度はソースファイル参照に注目してみましょう。ソースファイル参照をダブルクリックすると、対応するエディタが開きソースファイルに変更を加えることができます。しかし、前掲の図から推測できるかもしれませんが、ソースファイル参照は、ターゲットへの追加時に実行される一連の指示を伴います。たとえば、Objective-Cのソースコードファイル(拡張子は.m)をプロジェクトに追加し、それをターゲットに関連付けると、ファイルはターゲットのCompile Sourcesステップに追加され、GCCコンパイラによって処理されます。

図6に示すように、ソースファイル参照をターゲットの一部とするかどうかをXcodeプロジェクトインターフェイスを使用して制御できます。

Xcodeインターフェイスでは、ターゲットへのソースファイル参照の関連付けをすばやく調整できる

図6:Xcodeインターフェイスでは、ターゲットへのソースファイル参照の関連付けをすばやく調整できる

これらの設定は、ソースファイル参照に対応する「Info」ウインドウを使用して調整することも可能です。「Info」ウインドウを開くには、「File」>「Get Info」またはCommand-Iを使用します。このウインドウを図7に示します。

ファイル参照の「Info」ウインドウでは、ファイルがどのターゲットに属するかを設定できるほか、他の任意のビルド設定を設定できる

図7:ファイル参照の「Info」ウインドウでは、ファイルがどのターゲットに属するかを設定できるほか、他の任意のビルド設定を設定できる

これまでの図の中で示してきたObjective-Cのソースファイルの場合、アクティブターゲットに属しているのでGCCによってコンパイルされ、最終的な実行可能ファイルにリンクによって組み込まれます。最終プロダクトにこのファイルを含めないようにするには、プロダクトをビルドするターゲットからファイルを取り除くだけで済みます。

ターゲットの処理の処理方法

今度は、ターゲットと、それらがどのように処理されるかという点に注意を移します。「Groups & Files」リスト内のターゲットを詳しく見れば、プロダクトをビルドすると何が起こるかが大まかにわかります。図8では、DotViewプロダクトをビルドする処理を詳しく説明しています。

ターゲットに含まれることでファイルに対して実行されるアクション

図8:ターゲットに含まれることでファイルに対して実行されるアクション

ターゲットのビルド時にこの処理が実際に動作しているところは、図9に示すように「Build Results」ウインドウで見ることができます。このウインドウを表示するには、「Build」>「Build Results」メニュー項目またはCommand-Shift-Bを使用します。

「Build Results」ウインドウに表示される、ターゲットのステップごとの進捗

図9:「Build Results」ウインドウに表示される、ターゲットのステップごとの進捗

ビルドルールとビルド設定

では、Xcodeは、ターゲットに属するファイル参照を処理する方法はどのようにして知るのでしょう。簡単です。Xcodeは、その方法を、ターゲットに関連付けられているビルドルールとビルド設定を利用して知るのです。デフォルトのルールと設定では、GCCでサポートされている言語で書かれたコードを含んだファイルは、GCCでコンパイルするように指定されます。しかし、CのソースファイルをGCCの以前のバージョンでコンパイルしたい場合は、図10に示すように、ターゲットの「Info」ウインドウを使用して簡単にそのように設定できます。

ターゲットのビルド設定とビルドルールは共にターゲットの「Info」ウインドウで変更できる

図10:ターゲットのビルド設定とビルドルールは共にターゲットの「Info」ウインドウで変更できる

ソースファイル参照とターゲットの両方を詳しく見ることができたので、今度はXcodeプロジェクトの最後の部分である実行可能環境を見てみましょう。

実行可能環境

先にも述べたように、実行可能環境はXcodeからの実行時にプロダクトをどのように実行するかを定義します。実行可能環境は、Xcodeから起動するプログラムと、起動する方法を定義します。複数の実行可能環境を設定して、さまざまな状況の下でプロダクトをテストできます。

簡単にまとめると、実行可能環境は次のことを定義します。

  • どの実行可能ファイルを使用するか。ターゲットによってビルドされたプロダクト、またはシステム上の他の実行可能ファイルを指定できます。
  • 実行可能ファイルに渡すコマンドライン引数。
  • 実行可能ファイルの起動の前に、その環境に設定する環境変数。
  • 使用するデバッガと、デバッガの中で実行可能ファイルを実行する方法。

これらの項目がどのように定義されているかは、図11に示すように、実行可能ファイルに対応する「Info」ウインドウで見ることができます。

実行可能ファイルの「Info」ウインドウで、プロダクトの実行方法の詳細を確認できる

図11:実行可能ファイルの「Info」ウインドウで、プロダクトの実行方法の詳細を確認できる

詳細情報

  • Xcodeをダウンロードするには、ADC会員向けサイトの「Xcode Tools 2.1」ダウンロードページにログオンします。
  • 継続してXcodeをさらに詳しく学ぶには、『Xcode 2.1 User Guide』を必ず読みましょう。

掲載日: 2005-10-10