Xcode のコマンドラインツールをターミナルから切り替える
プログラミングで出逢った出来事
Xcode 6.3-beta で Swift 1.2 が登場して、Swift 1.1 とは言語構文にも違いがあるものだから、どちらで作ったコードかで Xcode を正式版と Beta 版との使い分ける必要がたびたび出てきました。
特に CocoaPods とか git とかをターミナルから扱うときに Xcode を切り替えたいことがあったので、ターミナルからコマンドラインツールを切り替える方法を調べてみました。
Mac のターミナルから xcodebuild などを使ってビルドするためのツールは「コマンドラインツール」として Mac にインストールされています。
Xcode からであれば
Xcode
Preferences...
からコマンドラインツールを切り替えることができますが、たとえば CocoaPods や git のようなツールをターミナルで使っているときに、わざわざ Xcode を起動して切り替えるのは面倒です。
ターミナルからコマンドラインツールを切り替える
コマンドラインツールは、ターミナルからでもxcode-select
コマンドを使って切り替えられます。
たとえば、Xcode のベータ版が/Applications/Xcode-Beta.app
としてインストールされている場合、このコマンドラインツールを使いたいときには、次のようにします。
sudo xcode-select -s /Applications/Xcode-Beta.app
OS X の管理アカウントのパスワードを尋ねられるので入力すれば、指定したパスにあるコマンドラインツールに切り替わります。
同様に、Xcode の正式版が/Applications/Xcode.app
としてインストールされていて、それに切り替えたい場合は次のとおりです。
sudo xcode-select -s /Applications/Xcode.app
Xcode のインストールされているパス (/Applications) や、アプリケーション名の後の拡張子 (.app) は省略できないようなので、きちんと入力する必要があります。
選択されているコマンドラインツールを確認する
次のコマンドを実行すると、現在選択されているコマンドラインツールのパスを取得できます。
xcode-select -p
このようにすると、たとえば次のようなパスが得られます。
/Applications/Xcode.app/Contents/Developer
これを使えば、たとえば自作スクリプトを Beta 版の Xcode で実行してほしいときに、現在のコマンドラインツールをチェックして、必要に応じて Beta 版への切り替えを促すみたいなこともできそうですね。