ホームページ>開発ツール>REALbasic Mach-O Plugin 覚書・基礎編2・互換性の維持
REALbasic Mach-O Plugin 覚書
基礎編2・互換性の維持
目次
はじめに
今回は、CPUのアーキテクチャやOSのバージョンが異なる環境に対しての、互換性の維持に関する話題です。
サポートの範囲を決める
今までのサンプルは、基本的に、現在のアーキテクチャ/現在のOSが前提になっています。
ビルドしたマシンでしか使わない場合はそれでいいのですが、アーキテクチャやOSのバージョンが異なるマシンでも使いたい場合や、広く一般公開したい場合は、できるだけ広範囲にサポートしたいものです。
ここで、開発ツールの対応を見てみると、
・REALbasic 2008r1:Mac OS X 10.2以降(ビルドされたアプリ。IDEは10.3以降)
・Xcode 3.0:Mac OS X 10.3.9以降
(いずれも、アーキテクチャはユニバーサル対応)
できれば10.2以降をサポートしたいところですが、Xcodeが対応していません。
また、Intelマシンは、10.4以降でのみ動作します。
そのため、ここでは「PPC & 10.3.9以降/Intel & 10.4以降」について、試してみることにしました。
Xcodeの設定を変更する
今回は応用編1・画像の回転で作成したプラグインを例に、検証してみました。
まずはアーキテクチャですが、これは前に触れたように、あらかじめカスタマイズしてあれば何もしなくてよいのですが、もし標準のままであれば、以下の通り「ppc i386」に設定します。
なお、プラグインがユニバーサルに対応していない場合は、REALbasicでビルド時に以下のようなエラーが出るため、ビルドが完了すればとりあえずOKとみていいようです。
次は、OSのバージョンについてです。
試しに、以前ビルドしたアプリをそのまま「PPC & 10.3.9」マシンに持っていって起動したところ、以下のメッセージが表示され、実行できませんでした。
これは、ビルドしたマシンのOS(この場合は10.5.2)専用のビルドになっているためです。
そこで、まずはXcodeの「情報」で、「一般」タブの「ターゲットSDKを使用したクロス開発」に「Mac OS X 10.3.9」を指定してビルドしてみましたが、エラーが発生してしまいました。どうも、アーキテクチャごとにSDKを指定する必要があるようです。
ということで、
- 「ビルド」タブの「ベースSDKのパス」をクリックし、「アーキテクチャごとの設定を追加」する。
(以下の例は、既にIntelを追加し、PowerPCを追加しようとしているところ。)
- 「値」の欄に、以下を記述する。(上段はIntel用、下段はPowerPC用)
$(DEVELOPER_SDK_DIR)/MacOSX10.4u.sdk
$(DEVELOPER_SDK_DIR)/MacOSX10.3.9.sdk
注)変数が解決されて上記のように表示されます。
追記:Xcode 3.1.2では「ベースSDKのパス」が「ベースSDK」になります。(ポップアップメニューになって指定し易くなりました。)(2009.04.21)
以上の設定でプラグインをビルドし、その後REALbasicアプリをビルドして「PPC & 10.3.9」マシンに持っていったところ、正常に動作しました。
以下の参考サイトによると、他にも設定する箇所があるようですが、とりあえず上記のみでも動作するようです。(念のため、設定しておいた方がいいかもしれません。)
参考サイト(1):クロス開発とUniversal Binary
おわりに
10.2に対応させるには、Xcode 2.5を10.4上で使うのが良さそうです。(試していないので、あくまで推測ですが。)
ただし、10.2対応の需要がどの程度あるのか、先に見極めた方がいいかもしれません。
お世話になったサイト
貴重な情報をご提供頂いている皆様に、お礼申し上げます。(以下、順不同)
参考サイト(1):クロス開発とUniversal Binary
更新履歴
2009.04.21 Xcodeの設定を変更するに、追記を追加。
2008.04.30 新規作成
[Home]
[MacSoft]
[Donation]
[History]