Xcode 3.0でMac OS X 10.3.9以上で動くUniversal binaryを作る

印刷用表示 |テキストサイズ 小 |中 |大 |

Repeating Motif Wonderland

更新日 2011-10-02 | 作成日 2007-12-12

Xcode 3.0 でMac OS X 10.3.9 以上で動くUniversal binary を作る

2008.1.29


Repeating Motif Generator Version 3.0.4 がMac OS X 10.3.9 で起動しない

 Leopardで原図エディタの発振器が選択されている事を示す枠が表示されない問題を解決できたので、Version 3.0.5として公開しようとしました。公開前にMac OS X 10.3.9で副作用が出ていないかどうか確かめようとしたのですが、何と起動すらしません!

 Dockの中で何回か飛び跳ねているのですが、それからすっと消えてしまいます。

 Version 3.0.4はInfo.plistを書き換えただけで、コードは一切変更していないため、動作チェックを行なっていませんでした。まさかと思ってチェックしてみるとやはり起動しません。

 少々焦りながらバージョンを一つずつさかのぼって確認していきましたが、あえなく全滅。3.0でも起動しないところで、これはおかしいと気づきました。3.0がNGの筈はないのです。

 そこで昔ビルドしたものを確認すると、ちゃんと起動しました。ここでコードの問題ではない事が確認できました。そう、LeopardになってXcodeが3.0になってから、Mac OS X 10.3.9で起動するアプリケーションをビルドできていないのです。

10.3.9のSDKをインストールする

 そもそも標準インストールだったので、10.3.9のSDKすらインストールされていませんでした。これで10.3.9で起動するアプリケーションをビルドできるわけがありません。

 まずは 10.3.9のSDKをインストールするところから始めます。LeopardのDVDを探して、Xcode Toolsのインストーラパッケージを起動します。

 こんな感じで 10.3.9のSDKを選択します。

reInstall10_3_9_sdk2.png

クロス開発とUniversal Binary

 情報を探してクロス開発とUniversal BinaryLinkIconというページを見つけました。Xcode 2.2の情報なので、そのまま適用というわけにはいきませんが、参考にはなります。

ターゲットSDKを選ぶ

 プロジェクトメニューから「プロジェクト設定を編集」を実行します。表示されたウィンドウから「ベースSDKのパス」を探して以下の様に設定します。

sdkRoot.png

 最初はIntelとかPowerPCといったサブ項目は表示されていないと思います。これを追加するには左下の歯車が表示されたボタンから「アーキテクチャごとの設定を追加」を選んでサブメニューからそれぞれのCPUを選びます。

sdkRoot.png

プロジェクトフォーマットを変更する

 アーキテクチャごとの設定を追加すると、警告が表示される様になります。これはプロジェクトフォーマットがXcode 2.4ではアーキテクチャごとの設定をサポートしないためです。

projectFormat.png

 そこでプロジェクトフォーマットを3.0に変更します。これは「一般」タブで設定できます。上から二番目の領域にポップアップメニューがあるので、そこで3.0を選べば警告が消えます。

projectFormat2.png

 なお、下の方にある「ターゲットSDKを使用したクロス開発」は「Mac OS X 10.4 (Universal)」である必要があります。

デプロイメントターゲットを設定する

 最後にデプロイメントターゲットを設定します。再び「ビルド」タブに戻り「Mac OS X デプロイメントターゲット」を探して以下の様に設定して下さい。

deploymentTarget.png

 「アーキテクチャごとの設定を追加」を同様に行ないます。注意点はIntelとPowerPCだけを設定すればよいわけではない事です。その上の「Mac OS X デプロイメントターゲット」を10.3に設定する事も忘れずに行なって下さい。

 私は最初ここが空欄になっていたため(空欄は「コンパイラのデフォルト」を意味する)10.3.9でクラッシュする現象に見舞われ、だいぶ悩みました。