Skip to content

[#744] TestFlight와 App Store IPA의 Firebase 설정을 검증한다#749

Merged
opficdev merged 1 commit into
developfrom
chore/#744
Jul 21, 2026
Merged

[#744] TestFlight와 App Store IPA의 Firebase 설정을 검증한다#749
opficdev merged 1 commit into
developfrom
chore/#744

Conversation

@opficdev

Copy link
Copy Markdown
Owner

🔗 연관된 이슈

🎯 의도

  • TestFlight와 App Store IPA가 앱 환경, bundle ID, Firebase 식별자, database ID 및 Functions URL을 올바르게 포함했는지 업로드 전에 검증
  • build lane과 upload lane에서 같은 검증기를 사용해 잘못된 Firebase 설정이 포함된 IPA의 업로드 차단

📝 작업 내용

📌 요약

  • APP_ENVIRONMENT 환경별 기대값 추가
  • IPA 내부 Info.plistGoogleService-Info.plist 검증 추가
  • 기대값을 expected_configuration으로 묶어 공통 검증기에 전달
  • plist 값의 누락·빈 값·불일치 오류 처리 공통화
  • build 및 upload 경로의 공통 검증 함수 사용

🔍 상세

  • TestFlight의 APP_ENVIRONMENT=staging, App Store의 APP_ENVIRONMENT=prod 기대값 구성
  • IPA 해제 후 다음 파일의 존재 여부 확인
    • Payload/DevLog.app/Info.plist
    • Payload/DevLog.app/GoogleService-Info.plist
  • Info.plist의 다음 항목 검증
    • APP_ENVIRONMENT
    • CFBundleIdentifier
    • FIRESTORE_DATABASE_ID
    • FUNCTION_API_BASE_URL
    • FirebaseCrashlyticsCollectionEnabled
  • GoogleService-Info.plist의 다음 항목 검증
    • PROJECT_ID
    • GOOGLE_APP_ID
    • BUNDLE_ID
  • PROJECT_IDGOOGLE_APP_ID 기대값이 함께 전달된 경우 실제 값과 비교
  • required_plist_value, verify_plist_value를 통한 누락·빈 값·불일치 오류 메시지 통일
  • build_for_store, upload_testflight_build, upload_appstore_build에서 동일한 verify_store_info_plist 사용
  • staging과 prod의 실제 Firebase 식별자, (default) database ID 및 공통 api URL 연결은 #745와 #746으로 유지

검증 결과

  • ruby -c fastlane/Fastfile 통과
  • bundle exec fastlane lanes 통과
  • git diff --check -- fastlane/Fastfile 통과
  • 임시 IPA의 전체 기대값 일치 검증 성공
  • 잘못된 PROJECT_ID 검증 실패 확인
  • 누락된 GOOGLE_APP_ID 검증 실패 확인
  • Code Reviewer 판정 Pass
  • 앱 및 Simulator 실행 미수행
  • 실제 TestFlight 및 App Store 업로드 미수행

📸 영상 / 이미지 (Optional)

  • 해당 없음

@opficdev opficdev self-assigned this Jul 21, 2026

@gemini-code-assist gemini-code-assist Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

이번 PR은 fastlane/Fastfile에서 verify_store_info_plist 메서드를 리팩토링하여 개별 인자 대신 구조화된 expected_configuration 해시를 받도록 수정하고, 앱 환경 변수 및 Firebase 설정 값들에 대한 검증 로직을 추가하였습니다. 리뷰어는 Shellwords가 로드되기 전에 사용되어 NameError가 발생할 수 있는 문제를 지적하며, require "shellwords"를 메서드 시작 부분으로 이동하고 중복된 임포트를 제거할 것을 제안했습니다.

Important

The consumer version of Gemini Code Assist on GitHub is being sunset. Starting June 18, 2026, new organization installations will be blocked, and all code review activity will officially cease on July 17, 2026.
For more details on the timeline and next steps, please review the Help Documentation.

Comment thread fastlane/Fastfile
Comment thread fastlane/Fastfile
@opficdev
opficdev merged commit 5ae32ed into develop Jul 21, 2026
7 checks passed
@opficdev
opficdev deleted the chore/#744 branch July 21, 2026 10:06
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

TestFlight와 App Store IPA의 Firebase 설정을 검증한다

1 participant