動機
複数プロジェクトのCIの為に、Xcodeを複数バージョン使い分けたいし、ビルドコマンドも使い分けたかった。
解決策
複数バージョンのXcode管理
検索した限りでは、手動でDL, リネームしてインストールなどの方法があったが、↓のものが一番良かった。
rbenvやnvmのようなもので、XcodeをCLI上で複数バージョンインストール、切り替えしてくれる。
インストールには Apple Developer Program account が必要で、一度ブラウザでログインして規約等に同意しておく必要がある。
# インストール可能なバージョンリスト $ xcversion list # 任意のバージョンのインストール $ xcversion install 9.2 # 任意のバージョンに切り替え $ xcversion select 9.2 # 現在のバージョン $ xcversion selected Xcode 9.2 Build version 9C40b
環境変数 DEVELOPER_DIR で、xcodebuild コマンドの実行バージョン切り替え
# 9.2でxcodebuildのバージョンを確認 $ xcversion selected Xcode 9.2 Mac version 9C40b $ xcodebuild -version Xcode 9.2 Build version 9C40b # 9.4.1に切り替えてxcodebuildのバージョンを確認 $ xcversion select 9.4.1 Xcode 9.4.1 Build version 9F2000 $ xcodebuild -version Xcode 9.4.1 Build version 9F2000
上記のように、 xcversion select
でバージョンを切り替えると xcodebuild
コマンドの実行バージョンも切り替わるのだが、時々パスワード入力を求められてしまうことがある。
これではCIで利用する際に使えないので、環境変数 DEVELOPER_DIR
を使いバージョンを指定しつつ xcodebuild
を実行する。
DEVELOPER_DIR
には利用したいXcodeのバージョンのPATHを指定する。
$ xcodebuild -version Xcode 9.4.1 Build version 9F2000 $ DEVELOPER_DIR=/Applications/Xcode-9.2.app/ xcodebuild -version Xcode 9.2 Build version 9C40b
これでCIなどからも任意のバージョンのXcodeを呼び出せるようになった。