Skip to content

App Store 빌드를 TestFlight에서 검증한 iOS SHA로 고정한다 #792

Description

@opficdev

배경

TestFlight와 App Store는 같은 iOS 코드베이스를 사용하지만 서로 다른 workflow와 build configuration으로 별도 빌드한다.

현재 .github/workflows/testflight.yml.github/workflows/appstore.yml은 각각 실행 시점에 선택된 ref를 checkout한다. TestFlight 검증 이후 branch에 새 commit이 추가되면 App Store workflow가 검증하지 않은 코드를 포함할 수 있다.

추가 코드 검토나 TestFlight 재검증을 수행하는 대신, App Store Release build가 성공한 TestFlight 실행에서 검증한 정확한 iOS SHA를 사용하도록 보호 장치를 구성한다.

작업 범위

  • TestFlight workflow가 실제 checkout한 github.sha와 workflow run ID를 릴리스 manifest에 기록
  • TestFlight 업로드와 build가 성공한 경우에만 해당 manifest를 검증 결과로 사용
  • App Store workflow가 검증된 TestFlight run 또는 manifest를 입력으로 받도록 구성
  • App Store actions/checkout이 manifest의 정확한 iOS SHA를 checkout하도록 변경
  • checkout 후 HEAD가 기록된 SHA와 다르면 build 전 실패 처리
  • App Store workflow summary와 릴리스 산출물에 사용한 iOS SHA 기록

임의로 입력한 SHA만으로 “TestFlight 검증 완료”로 간주하지 않는다. 성공한 TestFlight workflow 실행과 연결된 SHA임을 확인한다.

완료 조건

  • TestFlight 실행에 실제 사용한 iOS SHA가 기록됨.
  • App Store workflow가 성공한 TestFlight 실행의 SHA만 사용함.
  • TestFlight 이후 branch가 변경되어도 App Store build source가 바뀌지 않음.
  • checkout 결과가 기록된 SHA와 다르면 build가 시작되지 않음.
  • 추가 코드 검토나 TestFlight 재실행 없이 동일 source 사용 여부를 자동 확인함.

제외 범위

  • Staging IPA를 App Store IPA로 재사용
  • private config SHA 고정
  • build number 동시 실행 제어
  • Firebase 배포와 App Store 공개 예약

연관 이슈

  • opficdev/DevLog_Firebase#65

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions