2014年10月19日日曜日

YosemiteでMacPortsをコンパイルするにはXcode 6.1を入れる

Yosemiteいいですね。そういえば、6月以後、全くよそごとに手がつかなかったので、WWDCの録画も、iPhone 6などの発表イベントも、先日にイベントも、なにも見ていなかったんですけど、昨夜ようやく通して観まして、それで知ったんですが「Yosemite」は「ヨゥーセミリィ」と発音するんですね。

いや、アメリカは去年3回行って、大陸横断する感じで都合結構な滞在期間だったんですが、ほとんど観光らしきことしてないんで、いわゆる観光地のことは全然知らないんです。逆に庶民とか貧困な人たちの生活感覚みたいなのはすごく身体に入ったというか、普通の観光客や企業の海外滞在なんかでお膳立てされた生活している人よりよっぽどアメリカ人化したかもしれない。その勢いで語ると、Apple本社所在地の「Cupertino」も人によって違うけど、だいたい「クパーティノ」か「キュパーティノ」でして、辞書に載ってる「クパチーノ」はメヒカーノ(メキシコ人、つまりスペイン語)に近いんだと思うわけです。

あ、すみません、枕が長すぎました。でもまだ枕が続くんですがすみません。

そのMac OS X 10.10 Yosemiteなんですけど、9月に突然MacBook Air (mid 2011)のSSDがおかしくなりまして、家人拝み倒してMBPの、SSDが128GBでRetinaであること以外は最低スペックのを急遽購入させていただいたので、偶然空いた(Target Disk Modeでは起動できたので、Thunderbolt経由でマウントして内容を移行したあと、MBA側のパーティション壊して再フォーマットし、Internet Recoveryかけてやったら、一応起動した)MacBook AirがあったのでPublic Betaに参加しつつ、全くフィードバックせず、無事先日の公開となりました。

さてようやく本題です。

実は最終のPublic Betaでは、Chromeの安定版が数分固まることがあるという不具合があったんですが、固まるだけでほっとくと元に戻るので、Googleに報告すべきなのかAppleに報告すべきなのか判然としないまま、まあいいや緊急事態ではないから、という感じでありましたが、さすがに公開版のYosemiteではそんなことはありませんでした。「iOS 8公式魔改造の結果大炎上」(とまでは言ってないけど、先日のプレゼンでTim CookだったかCraigだったか忘れてしまいましたが『feedback』を苦笑交じりに連発する形でいいいわけしてましたね)に乗じて「人柱乙」と半笑いの人たちもおりますが、全く問題ないと思っております。

ただ、App Storeに載って大人気とかでもない限り、普通のサードパーティはしょうがないわけで、MacPortsも数日遅れのYosemite対応でありまして、少なくともいまのところは問題が若干あります。

まず、OSのバージョンが上がると全部コンパイルし直す感じになる(いままでそうでなくて済んだんだけど、最新の2.3.2では強制でそうなる)わけですが、CMakeのコンパイルで止まります。検索するといっぱい出てくるんですが、エラーの内容は、

Mac OS 10.10のSDKがないぞ
なわけです。

えっ、と思って入っているXcodeのバージョンをみると6.0.1で、Mac App Storeの最新もこれなんですが、iOS 8とSwift対応はしているのですが、よくみるとターゲットSDKは10.9、つまりMavericksなのです。

それで検索してみると、どうもXcode 6 betaのどこかで10.10のSDK入りがあったようで、ここからダウンロードしろというわけですが、

Xcode 6.1 available shortly
でありまして、そこに、「latest OS X and iOS SDKs」と添え書きがあって不安になるわけです。

しかし、意を決して「Additional Tools」の「View downloads」を選択すると、トップに「Xcode 6.1」があり、説明にもbetaとかGMとかそういうのはなくって、どうも公式っぽいです。が、Mac App Storeにある最新は6.0.1。

それでも、こちらはupgrade途中で環境が壊れて困っているので、そのままdmgをダウンロードして置き換えて、

sudo xcode-select -s /Applications/Xcode.app/Contents/Developer
sudo xcode-select --install
なんかしてあげて、Command Line Toolsも10.10用に設定してあげると、無事コンパイルが進んでいるようです。

というわけで、いま泣いている人は試してみてください。

ちなみに、Xcode 6.1はいま現在、日本語ロケールに対応した表示がありません。メニューその他、表示は全部英語です。だから日本向けには公開されていないのかな、と思います。