コード署名に利用可能なデベロッパー証明書の一覧を表示する
$ security find-identity -p codesigning -v [キーチェーンのパス]
コード署名に利用するキーチェーンのロックを解除する
※xcodebuildをsshなどを使ってリモートで実行しようとする場合に必要
$ security unlock-keychain -p <キーチェーンのパスワード> [キーチェーンのパス]
キーチェーンに証明書や秘密鍵をインポートする
$ security import <証明書または秘密鍵ファイル> [キーチェーンのパス]
キーチェーンから証明書や秘密鍵を削除する
$ security delete-certificate -Z <証明書のSHA-1ハッシュ値> [キーチェーンのパス]
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
macOSのキーチェーンに格納されているデベロッパー証明書の内容を確認します。
"iPhone Developer: DEVELOPER NAME (XXXXXXXXXX)"の部分には証明書に付けられたコモンネームなどの証明書を一意に識別できる情報を指定します。
$ security find-certificate -p -c "iPhone Developer: DEVELOPER NAME (XXXXXXXXXX)" | openssl x509 -text -noout
macOSのキーチェーンに格納されているデベロッパー証明書で期限切れになったもの(CSSMERR_TP_CERT_EXPIRED)や無効化(CSSMERR_TP_CERT_REVOKED)されたものを一括で削除します。
※削除したものは元には戻せないのでキーチェーンをバックアップするなどして慎重に運用してください
$ security find-identity -p codesigning | grep -e CSSMERR_TP_CERT_REVOKED -e CSSMERR_TP_CERT_EXPIRED | awk '{print $2}' | xargs -I{} security delete-certificate -Z {}