릴리스현행

앱 개발·디버깅 백서

자동 테스트 밖의 외부 메시지·인증 링크·실사용 누락을 반복하지 않기 위한 기준입니다.

화면 번역과 외부 메시지는 별도 계약이다

앱 화면이 16개 언어여도 Firebase 인증메일, 푸시, 결제 영수증, 고객지원 메일과 웹 action handler가 자동으로 같은 언어가 되지는 않는다.

외부 메시지 경로마다 앱 언어 전달, 서비스별 언어 코드 매핑, 링크 도착 화면의 언어 보존, 실제 수신 검증을 각각 수행한다. 발송 성공을 현지화 성공으로 기록하지 않는다.

Firebase 인증메일 기준

  • 인증메일·재발송·비밀번호 재설정 직전에 Firebase Auth 언어를 설정한다.
  • zh-Hans→zh-CN, zh-Hant→zh-TW, pt→pt-BR을 명시 매핑한다.
  • 알 수 없는 언어는 영어로 안전하게 fallback한다.
  • 완료 URL에 같은 언어를 전달하고 16개 언어·아랍어 RTL로 표시한다.
  • 앱 복귀 후 사용자를 다시 로드해 서버의 실제 인증 상태를 확인한다.

발송 성공 다음의 E2E

정상 인증, 재발송, 비밀번호 재설정, 만료 링크, 재사용 링크, 변조 코드, 완료 페이지, 앱 복귀를 각각 확인한다. 자동 테스트는 언어 매핑과 화면 사전을 검증하지만 실제 받은 메일의 문구와 링크 동작을 대신하지 않는다.

현재 링크 처리 방식

현재 릴리스는 Firebase의 호스팅 action handler가 코드를 처리한 뒤 MAJUHAN 완료 페이지로 이동한다. handleCodeInApp=true는 앱에 Universal Link·Android App Link 수신과 oobCode 적용 경로가 구현된 뒤에만 사용한다.

구현됨, 자동 검증됨, 출시 검수 완료를 구분해 기록한다.

선택 기능과 iOS 개인정보 선언

문의 첨부처럼 사용자가 원할 때만 쓰는 기능도 플러그인이 사진 보관함 API를 참조하면 App Store Connect 정적 분석 대상이다. 기본 Info.plist 목적 문구, 16개 언어 InfoPlist.strings, Xcode 리소스 포함 여부를 함께 검증한다.

xcodebuild의 업로드 성공과 App Store Connect의 처리 성공도 구분한다. 업로드 후 buildUploads.state와 오류 코드를 확인해야 TestFlight 처리 완료로 기록할 수 있다. 2026-08-01 build 5는 목적 문구 누락으로 90683 오류가 발생해 build 6에서 기본 문구와 16개 언어 현지화를 보완했다.

build 6은 업로드 완료, 처리 유효, App Store 배포 가능, 오류·경고 0을 각각 확인했다. TestFlight 내부 그룹이 모든 빌드에 접근하는 구성에서는 수동 그룹 추가가 거절될 수 있으므로, 그룹 build 목록과 IN_BETA_TESTING 상태로 실제 배포 여부를 확인한다.

참고

문서 업데이트 원칙

구현 상태가 바뀌면 코드·DB·테스트와 같은 변경에서 이 문서도 함께 갱신합니다.

개발 현황으로 돌아가기