2010-11-23T10:19:25+09:00

Mac OS X 10.4 から 10.6 までサポートする為のビルド設定

Mac OS X 10.4 でも動作しつつ、 Mac OS X 10.6 では 64bit で実行される。そんな実行バイナリの作り方です。当然、ソースコードそのものには互換性がある物とします。

XCode で Mac OS X 10.5 移行の SDK を選んじゃうと PowerPC の Mac OS X 10.4 で動かなくなる。アーキテクチャーが "ppc" ではなく "ppc7400" になってしまうからだ。PowerPC 向けの32bit コードは Mac OS X 10.4 SDK でコンパイルする必要がある。たぶん XCode 3 からそのような細かいビルド設定が行えるようになっている。

とりあえず、32bit コードは Mac OS X 10.4 SD kでコンパイルするように設定しよう。そのためには、ビルド設定の「ベース SDK」を選択して、設定ウインドウ下にあるメニューから「ビルド設定条件を追加」を実行します。

すると、ベース SDK の項目の下に条件を追加できるようになって、次のように設定します。

次に、デプロイメントターゲットを設定します。デプロイメントターゲットは、実行コードの実行を許可する Mac OS X のバージョンの指定です。例えば、デプロイメントターゲットとして、Mac OS X 10.5が指定されていたら、たとえソースコードレベルで Mac OS X 10.4 と互換性があったとしても、Mac OS X 10.4 で実行できなくなります。

というわけで、Mac OS X 10.4 SDK でコンパイルしたアーキテクチャーに関しては、デプロイメントターゲットを Mac OS X 10.4 にして、それ以外は(実質的に 64bit のコード) Mac OS X 10.5 とします。「ビルド設定条件を追加」を実行して、次のように設定します。

以上の設定を行えば、とりあえず Mac OS X 10.4 から Mac OS X 10.6 までの幅広い OS に対応できるはず。

現実的にはコンパイルよりテスト環境を確保することが難しい。VMWare とかの仮想環境で各種 Mac OS X を動かせればいいのだけど。