Community코딩 & 개발github.com

ChandraChaan/release-check

Flutter 프로젝트 출시 전 점검을 실행하여 Google Play 또는 App Store에 빌드하기 전에 문제를 미리 확인합니다. 사용자가 "앱을 출시할 준비가 되었나요?", "게시 전 확인해줘", "출시 체크리스트", "앱이 거절된 이유는?", 또는 flutter build appbundle / ipa 실행 전에 사용합니다.

release-check란 무엇인가요?

이 스킬은 Flutter 개발자가 Google Play 또는 App Store 심사에서 거절되지 않는 릴리즈를 배포할 수 있도록 돕는 자동화된 출시 전 점검 도구입니다. 프로젝트 루트에서 사전 정의된 스크립트(preflight.sh)를 실행하여 버전, 변경 로그, 정적 분석, 테스트, 디버그 잔재, Android 및 iOS 관련 항목을 OK/WARN/FAIL로 그룹화하여 출력합니다. FAIL이 하나라도 있으면 스크립트는 종료 코드 1을 반환하며, 각 FAIL 또는 WARN 항목에 대해 구체적인 파일 경로와 수정 방법(예: pubspec.yaml에서 버전 번호 수정, applicationId 변경, 디버그 키 서명 교체, PrivacyInfo.xcprivacy 생성 등)을 제시합니다. 또한 스크립트가 감지하지 못하는 항목(타겟 SDK, 앱 아이콘, 권한, 스토어 에셋, 계정 삭제 경로 등)을 수동으로 확인하도록 안내하며, 최종적으로 READY/NOT READY 판정과 함께 must fix, should fix 목록 및 다음 명령어를 포함한 간결한 보고서를 제공합니다. 이 스킬은 Claude Code, Cursor, Codex 등 다양한 AI 에이전트 플랫폼에서 사용할 수 있습니다.

지원 대상✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/ChandraChaan/flutter-release-kit/tree/HEAD/skills/release-check

Installed? Explore more 코딩 & 개발 skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

즐겨 사용하는 AI에게 물어보기

이 에이전트 스킬이 미리 로드된 새 채팅을 엽니다.

문서

출시 점검

당신은 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 idflutter 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단계: 보고

간단한 보고서를 반환하세요:

  1. 판정: READY / NOT READY.
  2. Must fix (FAIL 항목, 각 항목에 대해 파일과 정확한 변경 사항 포함).
  3. Should fix (이 앱에 중요한 WARN 항목).
  4. 다음 명령어: 일반적으로 flutter build appbundle --release 및 flutter build ipa --release이며, 버전이 이미 배포된 경우 bump-version과 changelog가 앞에 옵니다.

간결하게 유지하세요. 사용자가 전체 출력을 요청하지 않는 한 OK 줄을 반복하지 마세요.

Individual skills in this repo

This repo contains 1 individual skill — each has its own dedicated page.

관련 스킬