[FIX] TestFlight 배포 codesign 무한 대기 해결 - #112
Merged
Merged
Conversation
러너에 이미 있는 login 키체인을 재사용하면서 비밀번호가 불일치해 match 의 set-key-partition-list 가 실패했고, codesign 이 헤드리스 환경에서 뜰 수 없는 승인 팝업을 기다리며 2시간 멈춤 전용 build.keychain 을 새로 만들어 쓰도록 변경하고, 키체인 생성 실패를 삼키던 || true 제거. 잡에 timeout-minutes 상한 추가
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
변경 사항
TestFlight 배포가
Deploy to TestFlight스텝에서 2시간 매달리던 문제를 해결합니다. (문제 발생 run)원인은 세 단계로 이어졌습니다.
Prepare keychain이security create-keychain ... login.keychain-db || true로 실행되는데, 러너에는login.keychain-db가 이미 존재합니다.A keychain with the same name already exists실패를|| true가 삼켜서, 의도한 "MATCH_KEYCHAIN_PASSWORD로 잠긴 새 키체인"이 아니라 러너 기본 비밀번호로 잠긴 기존 키체인이 그대로 쓰였습니다.그 결과 match의
set-key-partition-list가 비밀번호 불일치로 실패했습니다. 이 설정이 codesign의 GUI 승인 팝업을 막아주는 장치인데, fastlane은 경고만 내고 진행하기 때문에 잡이 실패하지 않고 빌드까지 갔습니다.빌드 중 codesign이 헤드리스 러너에서 뜰 수 없는 팝업을 기다리며 무한 대기했습니다. 취소 시점에
codesign프로세스 3개가 orphan으로 남아 있었습니다.변경 내용은 다음과 같습니다.
login키체인 대신 전용build.keychain을 새로 만들어 사용합니다.MATCH_KEYCHAIN_NAME환경변수로 주입하며,Matchfile은 이 값을 참조하되 없으면 기존처럼login으로 폴백해 로컬match_development는 영향받지 않습니다.|| true를 제거했습니다. 이제 실패가 조용히 넘어가지 않고 잡이 그 자리에서 멈춥니다.deploy잡에timeout-minutes: 60을 추가했습니다.To Reviewer
workflow_dispatch로 이 브랜치에서 실제 배포를 돌려 검증했습니다. (검증 run)security list-keychains에login.keychain-db를 함께 남겨두었습니다. 검색 목록에서 빠지면 xcodebuild가 시스템 인증서를 찾지 못할 수 있기 때문입니다.timeout-minutes를 추가한 이유는concurrency그룹이cancel-in-progress: false여서, 멈춘 잡 하나가 이후 배포를 전부 막기 때문입니다.fastlane beta로 먼저 처리해 **1.0.0 (build 2)**가 TestFlight에 올라가 있습니다. 로컬은login키체인 비밀번호가 일치해 같은 문제가 재현되지 않았고, 이는 이번 진단과도 일치합니다.