はじめに
ターミナルでどのXcodeを使うか指定するとき、以下の2パターンを見かけますが、みなさんはどちらで指定しているでしょうか。
また、同じ挙動になるかご存知でしょうか。
# 1
$ export DEVELOPER_DIR=/Applications/Xcode_12.app/Contents/Developer
# 2
$ export DEVELOPER_DIR=/Applications/Xcode_12.app
私は先日まで知りませんでした。
ときどき `DEVELOPER_DIR` で `/Applications/Xcode_11.6.app/Contents/Developer` でなく `/Applications/Xcode_11.6.app/` までしか指定していないのを見るんだけど、問題ないのかな?
— ウホーイ (@the_uhooi) September 24, 2020
結論
結論から言うと、1も2も同様の挙動になるので、どちらで指定しても問題ありません。
man xcode-select
で解説されています。
EXAMPLES
xcode-select --switch /Applications/Xcode.app/Contents/Developer
Select /Applications/Xcode.app/Contents/Developer as the active developer directory.
xcode-select --switch /Applications/Xcode.app
As above, selects /Applications/Xcode.app/Contents/Developer as the active developer directory. The Developer content directory is automatically inferred by xcode-select.
DEVELOPER_DIR
の名前通り「Developer」フォルダを指定すべきですが、「Xcode.app」のパスを指定した場合は自動で「Developer」フォルダが推測されます。
おまけ:「DEVELOPER_DIR」と「xcode-select」について
コマンドラインで使うXcodeを指定するには、 DEVELOPER_DIR
環境変数をエクスポートする方法と、 xcode-select
コマンドで指定する方法の2通りあります。
以下の記事で取り上げた通り、私は前者の方法を使っています。
https://qiita.com/uhooi/items/29664ecf0254eb637951#xcodeの選択不要
おまけ:XcodeのCLIツールの説明はmanが詳しい
xcode-select
コマンド以外にも、 xcrun
や xcodebuild
などのコマンドはWeb上に情報が多くありません。
man
コマンドによる説明が一番詳しい公式ドキュメントといっても過言ではないので、覚えておくと有用です。
xcodebuildとかもそうなんですけど、Xcode関係はだいたいmanが一番詳しい(それがいいことなのかどうかは分からないけど)。
— kishikawa katsumi (@k_katsumi) September 24, 2020
おわりに
「DEVELOPER_DIR」に指定するパスは、「Developer」フォルダと「Xcode.app」のパスのどちらでもいいことがわかりました。
つまりどちらを指定するかは好みです。
私は1で指定していましたが、短いほうがスッキリするので最近は2で指定することが多いです。