Xcode
cli
macos
apple
xcodebuild

XcodeをCLIで使うときに役に立ちそうなコマンド

コード署名に利用可能なデベロッパー証明書の一覧を表示する

$ /usr/bin/security find-identity -p codesigning -v

コード署名に利用するキーチェーンのロックを解除する

※xcodebuildをsshなどを使ってリモートで実行しようとする場合に必要

$ /usr/bin/security unlock-keychain <キーチェーンのパス> -p <キーチェーンのパスワード>

Xcodeプロジェクトの概要を表示する

$ cd <Xcodeプロジェクトのパス>

$ xcodebuild -list

Xcodeのバージョンを表示する

$ xcodebuild -version

以下は、複数のバージョンのXcodeをシステムにインストールしている場合に便利なコマンドです

現在有効化(選択)されているXcodeのパスを表示する

$ xcode-select -p

指定したパスのXcodeを有効化(選択)する

$ sudo xcode-select -s <選択するXcodeのパス>

実行にはroot権限が必要なため、suで一時的にroot権限を取得して実行します。

xcode-select -sで選択したXcodeのバージョンはその後他のバージョンのXcodeをxcode-select -sで選択するか、xcode-select -r(リセット)でデフォルトのXcodeが選択されるまで有効です。

一時的に指定したパスのXcodeを有効化(選択)する

$ export DEVELOPER_DIR=<選択するXcodeのパス + "/Contents/Developer">

パスには対象のXcodeがインストールされた場所 + "/Contents/Developer" で指定する必要があるので、標準のXcode.appであれば以下のようになります。

$ export DEVELOPER_DIR=/Applications/Xcode.app/Contents/Developer

Apple製の開発ツール、Xcodeやcodesignなどにキーチェーンへのアクセス許可を与えます。

$ /usr/bin/security set-key-partition-list -S apple-tool:,apple: -s -k <キーチェーンのパスワード> <キーチェーンのパス>

Xcodeおよびxcodebuildで利用可能なSDKのバージョンを一覧します。

$ xcodebuild -version -sdk

Xcodeバージョン9.xから導入された'New build syste'ではなく、旧来のビルドシステムを使用してプロジェクトをビルドします。

※Xcode 9.x以前に作られた古いプロジェクトをxcodebuildでビルドしようとしてエラー(error: Multiple commands produceなど)になった場合には試してみると良いでしょう。

$ xcodebuild ... 各種ビルドパラメータ ... -UseModernBuildSystem=NO