앱을 개발하는 것만큼 출시 과정도 중요합니다. 심사 거절을 피하려면 체계적인 체크리스트가 필요합니다.


기능 체크리스트

PLAINTEXT
□ 모든 핵심 기능이 정상 동작하는가
□ 네트워크 오류 시 에러 처리가 되어 있는가
□ 오프라인 상태에서 앱이 크래시하지 않는가
□ 로딩 상태가 적절히 표시되는가
□ 빈 상태(데이터 없음) 화면이 있는가
□ 뒤로 가기/스와이프 백이 모든 화면에서 동작하는가
□ 키보드가 입력 필드를 가리지 않는가
□ 딥링크가 올바른 화면으로 연결되는가
□ 푸시 알림이 포그라운드/백그라운드 모두에서 동작하는가

성능 체크리스트

PLAINTEXT
□ 앱 시작 시간이 3초 이내인가
□ 스크롤이 60fps로 부드러운가
□ 메모리 누수가 없는가 (장시간 사용 테스트)
□ Hermes가 활성화되어 있는가
□ 릴리스 빌드에서 console.log가 제거되었는가
□ 이미지가 적절한 크기로 최적화되었는가
□ 번들 크기가 합리적인가
TSX
// console.log 제거
// babel.config.js
module.exports = {
  plugins: [
    ['transform-remove-console', { exclude: ['error', 'warn'] }],
  ],
};

보안 체크리스트

PLAINTEXT
□ API 키가 소스 코드에 하드코딩되지 않았는가
□ 민감 데이터가 Keychain/Keystore에 저장되는가
□ HTTPS만 사용하는가
□ ProGuard/R8이 활성화되어 있는가 (Android)
□ 디버그 모드가 비활성화되어 있는가
□ 소스맵이 프로덕션 번들에 포함되지 않았는가

iOS 출시 준비

PLAINTEXT
□ Apple Developer 계정 ($99/년)
□ App ID 및 Provisioning Profile 생성
□ 앱 아이콘 (1024x1024)
□ 스크린샷 (6.7", 6.5", 5.5" 필수)
□ 앱 설명 (4000자 이내)
□ 개인정보 처리방침 URL
□ 카테고리 선택
□ 연령 등급 설정
□ 앱 내 구매 정보 (해당 시)
□ Info.plist 권한 설명 (카메라, 위치 등)
□ 64비트 지원 확인
□ 최소 iOS 버전 설정

Info.plist 권한 설명

XML
<!-- 사용하는 권한에 대해 사용 목적을 명확히 작성 -->
<key>NSCameraUsageDescription</key>
<string>프로필 사진을 촬영하기 위해 카메라 접근이 필요합니다</string>

<key>NSPhotoLibraryUsageDescription</key>
<string>프로필 사진을 선택하기 위해 갤러리 접근이 필요합니다</string>

<key>NSLocationWhenInUseUsageDescription</key>
<string>주변 가게를 찾기 위해 위치 정보가 필요합니다</string>

Android 출시 준비

PLAINTEXT
□ Google Play Console 계정 ($25 일회성)
□ 앱 서명 키 (keystore) 생성 및 안전한 보관
□ 앱 아이콘 (512x512)
□ Feature Graphic (1024x500)
□ 스크린샷 (최소 2장)
□ 앱 설명
□ 개인정보 처리방침 URL
□ 데이터 안전 섹션 작성
□ 콘텐츠 등급 설정
□ targetSdkVersion 최신 요구사항 충족
□ AAB 형식으로 빌드
□ 64비트 지원 확인

서명된 AAB 빌드

GRADLE
// android/app/build.gradle
android {
    signingConfigs {
        release {
            storeFile file(MYAPP_UPLOAD_STORE_FILE)
            storePassword MYAPP_UPLOAD_STORE_PASSWORD
            keyAlias MYAPP_UPLOAD_KEY_ALIAS
            keyPassword MYAPP_UPLOAD_KEY_PASSWORD
        }
    }
    buildTypes {
        release {
            signingConfig signingConfigs.release
            minifyEnabled true
            shrinkResources true
        }
    }
}

출시 후 체크리스트

PLAINTEXT
□ 크래시 모니터링 설정 (Sentry, Crashlytics)
□ 분석 도구 연동 (Firebase Analytics)
□ 에러 알림 설정
□ 첫 리뷰 모니터링
□ 성능 메트릭 대시보드 구축
□ OTA 업데이트 준비 (긴급 버그 수정용)
□ 앱 심사 거절 시 대응 계획

흔한 심사 거절 사유

사유대응
크래시/버그철저한 테스트
불완전한 기능데모 계정 제공
권한 설명 부실명확한 사용 목적 작성
개인정보 정책 누락URL 준비
가이드라인 위반 UIApple HIG/Material Design 준수
웹뷰만으로 구성네이티브 기능 추가

정리

  • 기능, 성능, 보안을 체계적으로 검증 한 후 출시하세요
  • iOS와 Android는 각각 다른 요구사항 이 있으므로 별도로 준비하세요
  • 권한 설명 을 명확히 작성하지 않으면 심사에서 거절됩니다
  • 출시 후 크래시 모니터링 과 성능 추적 은 필수입니다
  • 첫 출시는 시간이 걸리지만, 한번 세팅해두면 이후 업데이트는 수월합니다
댓글 로딩 중...