ホームページ開発ツール>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を指定する必要があるようです。
 ということで、
  1. 「ビルド」タブの「ベースSDKのパス」をクリックし、「アーキテクチャごとの設定を追加」する。
    (以下の例は、既にIntelを追加し、PowerPCを追加しようとしているところ。)


  2. 「値」の欄に、以下を記述する。(上段は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]