본문으로 건너뛰기
Unveilydocs

운영 배포 체크리스트

배포 전 보안 체크리스트

필수 체크리스트

앱 설정

  • 웹 서버 URL → 실제 운영 도메인으로 설정 (HTTPS)
  • google-services.json → 운영용 Firebase 프로젝트 파일로 교체
  • assets/config.json → 운영 환경에 맞는 설정 확인

라이선스

  • 대시보드 → 앱 설정 → 패키지명 등록 완료
  • 릴리즈 키스토어 서명 해시 등록 완료
  • 운영 라이선스 활성화 완료
  • app/src/release/assets/license.key 파일 최신 파일로 교체

보안 설정 (assets/config.json)

  • 스크린샷 보호 설정 확인 (security.screenshotProtectionEnabled)
  • 백그라운드 화면 보호 설정 확인 (security.backgroundProtectionEnabled)
  • 루트 탐지 활성화 (security.rootDetectionEnabled: true)
assets/config.json (보안 섹션)
{
  "security": {
    "screenshotProtectionEnabled": true,
    "backgroundProtectionEnabled": true,
    "rootDetectionEnabled": true
  }
}

금융, 의료, 결제 앱은 screenshotProtectionEnabled: true를 권장합니다. 스크린샷 및 화면 녹화를 차단합니다.

앱 무결성

  • Google Play Console → 앱 무결성 → Play Integrity API 활성화 완료
  • Google Cloud Console → 해당 프로젝트에 Play Integrity API 사용 설정 완료

자세한 내용은 앱 무결성 검증 문서를 참고하세요.

Android 권한 (AndroidManifest.xml)

  • 사용하는 Bridge에 필요한 권한만 주석 해제 완료

기능 권한(CAMERA, RECORD_AUDIO, ACCESS_FINE/COARSE_LOCATION, USE_BIOMETRIC 등)은 매니페스트에 주석 처리된 상태로 배포됩니다. 실제로 사용하는 Bridge에 해당하는 권한만 주석을 해제하세요. 사용하지 않는 권한을 선언하면 Google Play 데이터 안전(Data Safety) 섹션에서 불필요한 항목을 신고해야 합니다. INTERNET, POST_NOTIFICATIONS, VIBRATE는 기본적으로 활성화되어 있습니다.

Google Play 배포

  • 앱 서명: Google Play App Signing 사용 권장
    • 사용 시: Google 재서명 인증서 해시로 운영 라이선스 재활성화 필요
    • Play Console → 앱 → 앱 무결성 → 앱 서명 인증서 SHA-256 지문 확인
  • AAB 포맷으로 업로드 (APK 지양)
  • 앱 버전(versionCode, versionName) 확인
# 각 플레이버별 AAB 빌드
./gradlew :app:bundleBasicRelease
./gradlew :app:bundleStandardRelease
./gradlew :app:bundleProRelease

소셜 로그인 (사용 시)

  • 각 소셜 SDK의 개발자 콘솔에 운영 패키지명 등록 완료
  • social_login_config.json 키가 운영 환경용으로 설정됨
  • Meta 사용 시: build.gradle.kts manifestPlaceholders 확인

iOS (App Store)

Info.plist 사용 목적 문자열

사용하는 기능에 해당하는 usage-description 키가 Info.plist에 포함되어 있는지 확인하세요.

  • NSCameraUsageDescription (카메라 / QR 스캔)
  • NSFaceIDUsageDescription (생체 인증 / Face ID)
  • NSLocationWhenInUseUsageDescription (위치)
  • NSMicrophoneUsageDescription (마이크 / 음성 인식)
  • NSPhotoLibraryUsageDescription / NSPhotoLibraryAddUsageDescription (사진 라이브러리)
  • NSSpeechRecognitionUsageDescription (음성 인식)

실제로 사용하는 기능에 해당하는 키만 포함하고, 각 문자열에 사용 목적을 사실대로 명확히 작성하세요. 사용하지 않는 권한 문자열을 넣거나 목적이 불명확하면 App Store 심사에서 거부될 수 있습니다.

서명 및 배포

  • App Store 서명 / 프로비저닝 프로파일 설정 완료 (배포용 인증서, App ID)
  • StoreKit 2 인앱 상품 구성 완료 — App Store Connect에 상품 등록 (인앱 결제 사용 시)
  • (참고) SDK의 xcframework에는 dSYM이 포함되어 있어, App Store 업로드 시 Validate App에서 심볼 관련 경고가 발생하지 않습니다 — 별도 조치 불필요

Google Play App Signing 주의사항

Google Play App Signing을 사용하면 Google이 앱을 재서명합니다. 이때 업로드한 keystore의 SHA-256과 Google 재서명 인증서의 SHA-256이 다릅니다.

운영 라이선스 활성화 시 Google 재서명 인증서의 SHA-256을 사용해야 합니다.

  1. Play Console → 앱 → 앱 무결성 → 앱 서명 인증서 섹션
  2. SHA-256 인증서 지문 복사
  3. 대시보드 → 앱 설정 → 앱 서명 해시 업데이트
  4. 운영 라이선스 재활성화

On this page