출시 점검
당신은 Google Play 또는 App Store 심사에서 거절되지 않는 Flutter 릴리즈를 배포하려는 개발자를 돕고 있습니다. 구체적으로 행동하세요: 모든 문제에 대해 파일 이름과 정확한 변경 사항을 제시하세요.
1단계: 결정론적 사전 점검 실행
Flutter 프로젝트 루트에서 다음을 실행하세요:
bash "${CLAUDE_PLUGIN_ROOT}/scripts/preflight.sh" $ARGUMENTS
이 스크립트는 섹션(버전, 변경 로그, 정적 분석, 테스트, 디버그 잔재, Android, iOS)별로 그룹화된 OK / WARN / FAIL 줄을 출력하며, FAIL이 하나라도 있으면 종료 코드 1을 반환합니다. 테스트가 실행될 때 1분 정도 걸릴 수 있습니다. 사용자가 명백히 개발 중이고 빠른 확인만 원한다면 --skip-tests를 전달하세요.
2단계: 모든 FAIL과 WARN 조사
각 항목에 대해 스크립트가 지정한 파일을 열고 보고하기 전에 결과를 확인하세요. 일반적인 수정 사항:
| 발견 사항 | 수정 방법 |
|---|---|
| 버전에 빌드 번호가 없음 | pubspec.yaml에서 version: 1.2.0을 version: 1.2.0+1로 변경하세요. |
| 이 버전에 대한 태그가 이미 존재함 | bump-version 스킬을 실행하세요. |
com.example applicationId 또는 bundle id | flutter pub run change_app_package_name:main com.yourco.app을 사용하거나 android/app/build.gradle(.kts) 및 ios/Runner.xcodeproj/project.pbxproj의 세 PRODUCT_BUNDLE_IDENTIFIER 항목을 수정하세요. |
| 릴리즈가 디버그 키로 서명됨 | key.properties 로딩과 release signingConfig를 추가하세요; references/android-signing.md를 참조하세요. |
key.properties 또는 *.jks가 git에 추적됨 | .gitignore에 추가한 후 git rm --cached <file>을 실행하세요; 저장소가 공개된 경우 키스토어 비밀번호를 교체하세요. |
PrivacyInfo.xcprivacy 없음 | ios/Runner/PrivacyInfo.xcprivacy를 생성하세요; 템플릿은 references/privacy-manifest.md에 있습니다. |
debuggable=true, 일반 텍스트 트래픽, localhost URL | 릴리즈 전에 제거하세요. |
| 분석기 오류 / 실패하는 테스트 | 수정하세요; 건너뛰기를 권하지 마세요. |
3단계: 스크립트가 확인할 수 없는 사항 확인
프로젝트를 살펴보고 다음을 고려하세요:
- 타겟 SDK: Google Play는 신규 앱과 업데이트가 최근 Android API 레벨을 타겟팅하도록 요구합니다(Play의 최신 요구 사항은 대략 이전 연도 출시 수준).
android/app/build.gradle(.kts)또는 Flutter 기본값에서targetSdk를 확인하세요. - 앱 아이콘 및 스플래시: 기본 Flutter 아이콘은 심사에서 거절되고 사용자에게 즉시 삭제로 이어집니다.
flutter_launcher_icons/flutter_native_splash설정 또는 mipmap 폴더를 확인하세요. - 권한: 매니페스트에 INTERNET 외에 다른 권한이 있으면
permission-audit스킬을 실행할 것을 제안하세요. - 스토어 에셋: 피처 그래픽 1024x500(Play), 각 필수 기기 클래스의 스크린샷, 개인정보 처리방침 URL(앱이 데이터를 수집하거나 민감한 권한을 요청하는 경우 필수).
- 계정 삭제: 두 스토어 모두 앱이 계정 생성을 지원하는 경우 인앱 계정 삭제 경로를 요구합니다.
- 리뷰어용 로그인: 로그인 화면이 있으면 검토 노트에 데모 계정을 제공하도록 상기시키세요.
사용자가 거절 이유를 묻거나 더 깊은 검토를 원할 경우 references/store-rejections.md에서 일반적인 거절 사유와 수정 사항의 전체 목록을 읽으세요.
4단계: 보고
간단한 보고서를 반환하세요:
- 판정: READY / NOT READY.
- Must fix (FAIL 항목, 각 항목에 대해 파일과 정확한 변경 사항 포함).
- Should fix (이 앱에 중요한 WARN 항목).
- 다음 명령어: 일반적으로
flutter build appbundle --release및flutter build ipa --release이며, 버전이 이미 배포된 경우bump-version과changelog가 앞에 옵니다.
간결하게 유지하세요. 사용자가 전체 출력을 요청하지 않는 한 OK 줄을 반복하지 마세요.