Skip to content

[#741, 742] App target의 Firebase plist 경로를 단일 파일로 유지하고 앱 환경 판별과 Firebase 설정 누락 처리를 분리한다#748

Merged
opficdev merged 3 commits into
developfrom
chore/#741
Jul 20, 2026
Merged

[#741, 742] App target의 Firebase plist 경로를 단일 파일로 유지하고 앱 환경 판별과 Firebase 설정 누락 처리를 분리한다#748
opficdev merged 3 commits into
developfrom
chore/#741

Conversation

@opficdev

@opficdev opficdev commented Jul 20, 2026

Copy link
Copy Markdown
Owner

🔗 연관된 이슈

🎯 의도

  • 단일 App target과 App scheme, 공통 GoogleService-Info.plist 경로를 유지하면서 배포 흐름에 맞는 Firebase 설정을 GitHub Actions에서 선택하도록 구성
  • 앱 환경 판별을 Firestore database ID에서 분리하고, Firebase 필수 설정 누락을 숨기지 않도록 실패 처리 강화

📝 작업 내용

📌 요약

  • install-private-config에 필수 environment 입력 추가
  • CI와 TestFlight가 staging Firebase 설정을 선택하도록 구성
  • App Store가 prod Firebase 설정을 선택하도록 구성
  • APP_ENVIRONMENT 기반 앱 환경 판별 추가
  • FirebaseConfiguration의 staging 기본값 제거와 필수 설정 누락 처리 강화
  • 환경 판별 및 Firebase 설정 해석 테스트 추가

🔍 상세

  • App target과 App scheme을 분리하지 않고 기존 빌드 구조 유지
  • 환경별 원본 plist를 Application/App/Sources/Resource/GoogleService-Info.plist 공통 경로에 하나만 설치하는 흐름 구성
  • install-private-config에서 staging 입력 시 GoogleService-Info-Staging.plist, prod 입력 시 GoogleService-Info-Prod.plist 선택
  • 허용되지 않은 환경값 또는 선택한 원본 파일 누락 시 작업 실패 처리
  • CI build/test job과 TestFlight workflow에 environment: staging 지정
  • App Store workflow에 environment: prod 지정
  • DebugStaging configuration에 APP_ENVIRONMENT=staging, Release configuration에 APP_ENVIRONMENT=prod 지정
  • SettingsFeature의 prod 환경 판별 기준을 FIRESTORE_DATABASE_ID에서 APP_ENVIRONMENT로 분리
  • FIRESTORE_DATABASE_ID 누락 또는 미치환 시 staging으로 대체하지 않고 설정 해석 시 실패하도록 변경
  • FUNCTION_API_BASE_URL 누락, 미치환 값, 상대 경로를 URLError.badURL로 처리
  • database ID 우선순위와 누락 처리, Functions URL 검증, 환경별 베타 테스트 URL 노출 테스트 추가
  • 비공개 설정 저장소의 GoogleService-Info-Staging.plistGoogleService-Info-Prod.plist 준비 필요

📸 영상 / 이미지 (Optional)

  • 해당 없음

@opficdev opficdev self-assigned this Jul 20, 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은 Firebase 환경(staging 또는 prod)에 따라 적절한 GoogleService-Info.plist 파일을 동적으로 설치하도록 GitHub Action 및 앱 설정을 개선하고, FirebaseConfiguration의 환경 변수 및 번들 값 분석 로직을 리팩토링하며 테스트 코드를 추가했습니다. 피드백으로는 매번 호출 시마다 ProcessInfo와 Bundle을 조회하는 연산 프로퍼티인 databaseID를 static let 상수와 클로저 초기화 방식으로 변경하여 성능을 개선하라는 제안이 있었습니다.

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 Application/Infra/Sources/Common/FirebaseConfiguration.swift
@opficdev
opficdev merged commit 3fe2857 into develop Jul 20, 2026
10 of 21 checks passed
@opficdev
opficdev deleted the chore/#741 branch July 20, 2026 09:41
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.

앱 환경 판별과 Firebase 설정 누락 처리를 분리한다 App target의 Firebase plist 경로를 단일 파일로 유지한다

1 participant