Xcode Server の Bots で Carthage が Code Sign に失敗する時の対応

Carthage を使ってライブラリ管理をしているプロジェクトで Xcode Server の Bots 機能を使って CI を回す場合, テスト実行前に carthage bootstrap などを実行して, ライブラリをコンパイルすることになると思います. しかしデフォルトの設定では Carthage がライブラリをビルドする際に Code Sign error: となってしまいます.

原因

Xcode Server の Bots の Pre-action で Carthage を実行する際に, xcodebuild (Carthage がビルドに利用する Xcode 提供のコマンド) が code sign に必要な証明書を見つけられないようです.

解決

キーチェーンアクセスを開き Code sign に利用する iPhone Developer の証明書と鍵を “ログイン” キーチェーンから “システム” キーチェーンにコピーすれば動作します. この操作によりこの証明書と鍵がシステム全体から利用になってしまうため, セキュリティ的には注意が必要です.

参考