CircleCI で fastlane の create_keychain でエラーが出てしまった。
Fastfile には create_keychain をこんな感じで書いてた。
before_all do
if is_ci?
create_keychain(
name: 'name',
password: 'password',
timeout: 1800
)
end
end
エラーの内容は下記。
Shell command exited with exit status 48 instead of 0.
問題点
Issue when use create_keychain · Issue #9366 · fastlane/fastlane
すでに create_keychain してある状態で、同じ名前で keychain を作ってしまうのが問題のようだ。
エラーがでた状況は、確かに 2 回 create_keychain を実行していた。
- Scan でテストを実行
- before_all が実行され keychain が作成される
- Deliver で iTunesConnect にアプリ提出
- before_all で 2 回目の keychain 作成
解決策
create_keychain 前に該当の keychain を削除するようにした。
末尾の || echo
は、 keychain が存在しない場合にはエラーを握りつぶしたいため入れている。
before_all do
if is_ci?
sh("rm /Users/distiller/Library/Keychains/name-db || echo")
create_keychain(
name: 'name',
password: 'password',
timeout: 1800
)
end
end