From e1d7d34945eb32b2c8cb173dfa5f90a400212d2f Mon Sep 17 00:00:00 2001 From: Adam Borbas Date: Fri, 17 Jul 2026 05:29:29 +0200 Subject: [PATCH] Fix TestFlight codesign hang on CI via setup_ci match installs the distribution cert into the runner login.keychain but can't set the key partition list without a keychain password, so codesign blocks on a UI authorization prompt and the job hangs until timeout. setup_ci provisions a dedicated temporary keychain match/codesign use non-interactively. Co-Authored-By: Claude Opus 4.8 (1M context) --- fastlane/Fastfile | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/fastlane/Fastfile b/fastlane/Fastfile index 2b8efa1..ead35f6 100644 --- a/fastlane/Fastfile +++ b/fastlane/Fastfile @@ -46,6 +46,14 @@ platform :ios do # --------------------------------------------------------------------------- desc "Build a signed release and upload it to TestFlight" lane :beta do + # On CI there is no interactive login keychain, so match can't set the key + # partition list on the runner's login keychain (no password), leaving + # codesign blocked on a UI authorization prompt that never comes (the job + # then hangs until the timeout). setup_ci creates a dedicated temporary + # keychain with a known password that match imports into and codesign uses + # non-interactively. It is a no-op when running locally. + setup_ci + api_key = app_store_connect_api_key( key_id: ENV.fetch("ASC_KEY_ID"), issuer_id: ENV.fetch("ASC_ISSUER_ID"),