Xcode

ビルドに利用するxcodeのバージョンを切り替える

More than 3 years have passed since last update.

jenkinsなどのビルド用サーバーを用意して、xcodeによるビルドを行う場合、時には利用をするxcodeのバージョンを明示的に指定する必要があります。

jenkinsの場合,xcode-pluginとかを利用することでなんとかできる気もしますが、xcode-pluginは設定項目の数が多くむしろ煩雑になる感じがしているので、シェルスクリプトで最低限管理をしています。

その状況下で、xcodeのバージョンを指定する方法ですが、xcode-selectコマンドを利用することも考えられますが実はデメリットや留意事項として


  • xcode-select でxcodeのバージョンを切り替えるにはsudoが必要

  • システム全体に影響を及ぼすので、複数のジョブを走らせている場合、他のジョブに影響が出る可能性がある。

というわけでどうすればいいのかを調べていたら、xcode-select(1)DEVELOPER_DIR環境変数を指定しろって書いてありました。

という訳で、次のディレクトリ構造を作りました。

├── MyApplicationProject

│ ├── src
│ ├── MyApplicationProject.xcodeproj
│ ├── MyApplicationProject.xcworkspace
│ ├── tests
│ ├── Library
│ ├── Podfile
│ ├── Podfile.lock
│ └── Pods
├── README.md
└── XCVERSION

XCVERSIONには利用をするxcodeのバージョンを記入しておきます。そして、ビルドのスクリプトで

export DEVELOPER_DIR=/Applications/Xcode$(cat ${WORKSPACE}/XCVERSION).app/Contents/Developer

としてあげることで、ビルド時に利用をするxcodeのバージョンを切り替えることができました。


まとめ

xcodeのバージョンを切り替えるときは、環境変数DEVELOPER_ENVの変更を検討する。