🐈

fastlane を用いた iOS ビルド時に発生する CodeSign のエラーの解決方法

2025/01/13に公開

概要

fastlane を用いて iOS ビルドを試みた際に私が遭遇した以下の CodeSign のエラーとその解決方法について記載しました。

** ARCHIVE FAILED **
The following build commands failed:
    CodeSign <パス> (in target 'XXX' from project 'XXX')
(1 failure)

原因

codesign コマンドからビルドに使用する秘密鍵へのアクセスに失敗していることが原因のようでした。

解決方法

codesign コマンドから秘密鍵へのアクセスを許可(常に許可)してあげることで解決しました。

Xcode で該当の .xcodeproj を開き、Xcode 上でビルドを実行すると↓のようなダイアログが表示されるので「常に許可」を選択することで許可できます。

402410074-7aad820b-8eb2-4f6c-8837-e7d69235a200

fastlane match を使用する場合は次のように keychain_password を指定してあげることで自動的に秘密鍵へのアクセスが許可されるようでした。

match(
    ...
    keychain_password: <パスワード>,
    ...
)

補足

ファイル内にパスワードを直接するのは Private リポジトリであってもできるだけ避けたいので、GitHub Actions などから実行する場合は secrets に登録した値を workflow 内で環境変数に設定し、以下のように match を実行すると良さそうです。

match(
    ...
    keychain_password: ENV["KEYCHAIN_PASS"],
    ...
)
GitHubで編集を提案

Discussion