LoginSignup
97

More than 5 years have passed since last update.

Xcode 6-7系のバージョン間の微妙な差異まとめ

Last updated at Posted at 2015-07-01

以下、最終更新日時時点の情報です。
たまにメンテナンスしています。


Xcode 6系のバージョン間の微妙な差異、特にSwiftで書いている場合しっかり把握しているとたまに捗ります( ´・‿・`)

Xcode Swift Apple Watch tvOS iOS SDK CircleCI Travis 備考
6.0 1.0     8.0       
6.1.1 1.1     8.1   o o  
6.2 - WatchKit   8.2       
6.3.1 1.2     8.3  o o エンバグ(※1)
6.3.2 -     8.3      6.3.1のバグ直った
6.4 -     8.4      2015/07/01リリース・現最新
7 2 watchOS 2   9.0      2015/09/17リリース
7.1 2.1 watchOS 2 9.0  9.1  o  o   2015/10/22リリース
7.2 2.1.1 watchOS 2.1 9.1  9.2      2015/12/08リリース
7.3 2.2 watchOS 2.2 9.2  9.3  o  o 2016/3/21リリース

書いても意味の薄いマイナーバージョンは一部スキップしています。

※1: エンバグについて

これです。
Embedded Framework使ってたり(+もう少し条件あるかも)すると、ビルドが詰まってものすごく時間がかかってまともに使えなくなります(´・︵・`)

Swift Compiler

Swift projects now compile quickly, fixing a speed regression in Xcode 6.3.1.
In Xcode 6.3.1, the Swift “Merge” compile phase could appear to hang for some targets. You no longer need to enable Whole Module Optimization in order to avoid this issue. (20638611)

Whole Module OptimizationがデフォルトNOなのですが、YESにするとこの問題回避出来ます。

僕はちょうどこの問題に引っかかって、けっこうハマりました。
(XcodeやSwiftのバージョン上がるといろんな問題が同時発生するので、何が原因か特定に手こずることがある)


どのバージョンのXcodeを使うかは基本お好みですが、極力最新のを使うのがベター、という前提の下、ユースケースとしては以下などですかね。

ユースケース

CircleCI・Travis使うなら

Xcode 6.3.1〜Xcode 7.1

この間にはSwiftの仕様に(ほぼ)差が無いため、僕はAppStore経由でインストール出来て取り回しの良い正式版最新のXcode 6.4で開発してます。
まあ差異があったらCI上でビルドエラーとして検知してくれますし。その結果どうしてもCI上のXcodeのバージョンと合わせなきゃいけないということになったら手元の環境も揃えるつもりですが、まだ困ったこと無いです。

→最近、Bitrise - Mobile Continuous Integration and Deliveryに乗り換えました。
正式版は即時追従してくれるし、β版もある程度追従してくれます。

Apple TVアプリ作るなら

Xcode 7.1 以降ですね。

管理のコツ

僕は以下のように管理していて、もう今後使わないであろうタイミングでこまめに削除しています。

  • AppStore最新版はそのまま弄らずXcode.appとして扱う
  • それ以外は、Xcode-6.3.1.appなどリネームして管理
    • リネームしないとAppStore版で上書きされちゃったりする

xcode-selectコマンド活用

xcodebuildなど実行した時、どの版が使われるのかを管理します。
CI環境作っていれば日常的に実行することは無いですが、たまに検証などでこれ系のコマンド使います。

  • 現在のパス確認: xcode-select -p
  • パス変更: sudo xcode-select -s NEW_PATH

DEVELOPER_DIRの環境変数に設定しても同様のことが出来ます。

リンク

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
97