前回から、本サンプルアプリケーションのUniversal Binary化(Intel x86 CPU対応)について解説していますが、今回は、開発環境の移行作業についての話です。サンプルアプリケーションの開発用プロジェクトを、Metrowerks CodeWarrior 9.6からXcode 2.2.1へと移植してみます。
記述を短くするため、これからは、Metrowerks CodeWarrior 9.6をMWCと、Xcode 2.2.1をXcodeと記載します。なにゆえ最新のMWC 10でなく9.6を使うかと言うと、それにはあまり深い意味はありません(笑)。筆者が、今でも9.6を使い続けており、まだ10への移行をしていないためです(所有はしていますが...)。たぶん、現状で大きなトラブルが発生しないかぎりは、筆者はMWC 9.6を使い続けるでしょう。残念ながら、これが実用の最終版ですね。ただし、これからする話は、10に対しても有効だと思われますので、MWC 10を利用しているユーザの方も参考にしてください。
もちろん、開発プロジェクトをMWC用からXcode用へ移植する作業を、すべて手作業で実行しても問題はありませんが、Xcodeのファイルメニューにある「プロジェクトの読み込み...」機能を利用するのが一番簡単で便利でしょう。手順は以下の様になります。
1.Xcodeファイルメニューから「プロジェクトの読み込み...」を選択
2.一覧リストから「CodeWarriorプロジェクトの読み込み」を選択
3.「次へ」ボタンをクリックで画面を切り換える
4.右上にある「選択...」ボタンをクリック
5.ファイル選択ダイアログで対象となるMWCプロジェクトファイル(.mcp)を選択
6.空だったカラムにCodeWarriorプロジェクトのパスと名称が設定される
7.「CodeWarriorから"グローバル・ソースツリー"を読み込む」をチェック
8.「参照プロジェクトを読み込む」をチェック
9.「完了」ボタンをクリック
10.AppleScriptによる制御でCodeWarrior IDEが起動され移植作業が開始される
11.MWCプロジェクトファイルと同階層に.xcodeprojファイルが作成される
この作業の大前提は、先んじてMWC側でアプリケーションをコンパイル&リンク(Make)可能なプロジェクトを正しく作成しておくことです。ちなみに、7と8の行程で行うチェックボックスの選択は、プロジェクトの移植方法によってはオプション操作となります。
上記移植処理には、CodeWarrior IDEに実装されているAppleScript機能を使いますので、IDEが起動できない環境では(MWCを所有していないと)実行できません。こうして完成したXcode用プロジェクトですが、最小の追加処理ですぐに使えるように、先んじてMWC用プロジェクトの方で準備しておく作業が幾つかあります。まあ、これについてはユーザの考え方や好みも関係するのですが、筆者の場合には、以下の処理を事前に実行しています。
まず最初に、nibファイル、リソースファイル、アイコンファイルなど、アプリケーションパッケージのResourcesフォルダに入るファイル類は、プロジェクトファイル(.mcp)と同階層にResourcesフォルダを作り、あらかじめその中にまとめて入れておきます。また、Info.plistファイルの構築に.plcファイルを使うのは止め、単独ファイルとして作成し、プロジェクトファイルと同階層に保存しておきます。そして最後に、Xcodeのプレフィックスヘッダ用として、以下内容を記述したテキストファイルを作っておきます。
#include <QuickTime/QuickTime.h>
例えば、MWC用プロジェクト名が「MOSA.mcp」ならば、プレフィックスヘッダファイルの名称は「MOSA_Prefix.pch」とし、プロジェクトファイルと同階層に保存します。
今回の作業でMWC用プロジェクトから移植したXcode用プロジェクトは、以下のサイトに「MOSA_10.4_UB.zip」という名称で登録されています(MWCとXcodeどちらからでもMake可能)。MWC用プロジェクトの設定内容と、フォルダ内に保存されているファイル構成については、こちらもぜひ参照してください。
http://www.ottimo.co.jp/library/index.html
移植処理を完了すると、MWC用プロジェクトに登録されているソースファイル、ヘッダファイル、nibファイル、リソースファイル、LibraryやFrameworkなどは、すべて自動的にXcode用プロジェクトに登録されます。ところが、IDEのPackageタブで設定しておいたアプリケーションパッケージの中身は、リソースファイルとnibファイルを除いて、まったく移動してくれません。例えば、今回のサンプルアプリケーションでは、以下の4つのファイルやフォルダが移動されません。
1.English.lprojフォルダとその中身のInfoPlist.stringsテキストファイル
2.Japanese.lprojフォルダとその中身のInfoPlist.stringsテキストファイル
3.MosA.icnsアイコンファイル
4.MosD.icnsアイコンファイル
また、せっかく作成し保存しておいたInfo.plistファイルも、Xcode側では有効となるように設定されていませんので注意してください。加えて、プレフィックスヘッダファイルのMOSA_Prefix.pchについても、Xcode側で登録作業をしないと有効になりません。
次回は、MWC用プロジェクトの移植作業において、Xcode側でしなければいけない追加処理について解説したいと思います。Info.plistやMOSA_Prefix.pchのプロジェクトへの登録や、SDKの種類の選択、コンパイルオプションの設定などを行います。
copyright 2006 Ottimo, Inc. All rights reserved
無断転載・引用禁止
Contact us: koike@ottimo.co.jp