상위 이슈: #740
배경
PR #748에서 App Store workflow가 prod 원본 plist를 공통 GoogleService-Info.plist 경로에 설치하도록 구성했다. App scheme의 Release configuration, APP_ENVIRONMENT=prod와 선택된 plist를 사용하는 dSYM 업로드 구조도 준비돼 있다.
현재 iOS는 Release에서 FIRESTORE_DATABASE_ID=prod와 https://asia-northeast3-devlog-c87b6.cloudfunctions.net/prodApi/api를 사용한다. opficdev/DevLog_Firebase#53은 기존 prod database 데이터를 같은 prod project의 (default)로 이전하고 prodApi를 공통 api로 전환한다.
prod 데이터 이전과 서버 전환에 맞춰 iOS의 database ID와 Functions URL을 한 번의 전환 순서로 변경하고 App Store 산출물을 검증해야 한다.
목표
App Store 빌드가 확정된 prod Firebase project의 (default) Firestore와 공통 api만 참조하도록 구성하고 검증한다.
작업
이미 완료된 범위
appstore.yml의 environment: prod 지정
App scheme과 Release configuration 사용
APP_ENVIRONMENT=prod 주입
- prod plist를 사용하는 Crashlytics dSYM 업로드 경로
제외 범위
- 별도 App Store 앱 또는 bundle ID 생성
- 인증서 및 provisioning profile 교체
- Firebase Functions 배포와 Firestore 데이터 이전 실행
- 기존 단일 project staging 자원 삭제
- 별도 승인 없는 App Store Connect 업로드 및 심사 제출
prod 서버와 iOS 전환은 opficdev/DevLog_Firebase#53과 함께 수행하고, 최종 교차 환경 검증과 rollback 확인은 #747에서 수행한다.
검증
완료 조건
의존 관계
상위 이슈: #740
배경
PR #748에서 App Store workflow가 prod 원본 plist를 공통
GoogleService-Info.plist경로에 설치하도록 구성했다.Appscheme의Releaseconfiguration,APP_ENVIRONMENT=prod와 선택된 plist를 사용하는 dSYM 업로드 구조도 준비돼 있다.현재 iOS는
Release에서FIRESTORE_DATABASE_ID=prod와https://asia-northeast3-devlog-c87b6.cloudfunctions.net/prodApi/api를 사용한다. opficdev/DevLog_Firebase#53은 기존proddatabase 데이터를 같은 prod project의(default)로 이전하고prodApi를 공통api로 전환한다.prod 데이터 이전과 서버 전환에 맞춰 iOS의 database ID와 Functions URL을 한 번의 전환 순서로 변경하고 App Store 산출물을 검증해야 한다.
목표
App Store 빌드가 확정된 prod Firebase project의
(default)Firestore와 공통api만 참조하도록 구성하고 검증한다.작업
PROJECT_ID와 iOS 앱의GOOGLE_APP_ID기대값을 확인함apiURL을 확인함Project.swift의Release에FIRESTORE_DATABASE_ID=(default)를 주입함(default)로 변경함apiURL로 변경함proddatabase ID 또는prodApiURL을 포함하면 실패하도록 확인함(default)Firestore 읽기·쓰기를 확인함이미 완료된 범위
appstore.yml의environment: prod지정Appscheme과Releaseconfiguration 사용APP_ENVIRONMENT=prod주입제외 범위
prod 서버와 iOS 전환은 opficdev/DevLog_Firebase#53과 함께 수행하고, 최종 교차 환경 검증과 rollback 확인은 #747에서 수행한다.
검증
APP_ENVIRONMENT=prod확인PROJECT_ID,GOOGLE_APP_ID,BUNDLE_ID확인FIRESTORE_DATABASE_ID=(default)확인FUNCTION_API_BASE_URL이 prod 공통apiURL과 일치함proddatabase ID 또는prodApiURL 사용 시 검증 실패완료 조건
(default)Firestore와 공통api를 사용함의존 관계