Fastlane CI 突然壞了:一個被遺忘的 Keychain 依賴如何讓 Build 連續失敗
Build 突然壞了,但沒有人改過 CI 設定 iOS 的 Jenkins pipeline 突然開始失敗。上一版(058)還好好的,下一版(059)就掛了。再跑一次(060),還是掛。 第一時間檢查 git diff —— 兩版之間只有 Dart 程式碼改動,沒有任何人碰過 Fastfile、Jenkinsfile、或 CI 相關設定。程式碼改動是 Flutter 層的 bug fix,跟 iOS build 流程完全無關。 這是最令人困惑的情境:什麼都沒改,但 CI 壞了。 先看一下各版的 build 結果: Tag Build 結果 耗時 prod-0.1.04+2026000058 #1 SUCCESS 9.5 分鐘 prod-0.1.04+2026000059 #1 FAILURE 2.3 分鐘 prod-0.1.04+2026000060 #1 FAILURE 2.3 分鐘 059 和 060 都只跑了 2 分多鐘就掛了 —— 連 Flutter build 都沒跑到,在 Fastlane 的前期設定階段就失敗了。 先理解 Fastlane 的 Keychain 機制 在深入除錯之前,先理解 iOS code signing 在 CI 環境的運作方式。 ...