Google Play 스토어 앱 출시 및 등록 신청 가이드 (A부터 Z까지 정식 출시 완벽 정리)
본 가이드는 최신 Android 애플리케이션(특히 .NET MAUI, MonoGame 또는 하이브리드 C# 프로젝트)을 Google Play Console에서 처음부터 생성하고 패키징, 서명, 발생하는 치명적인 오류 해결 및 스토어 신청 절차(앱 생성, 개인정보처리방침, 로그인 권한, 광고, IARC 연령 등급, 데이터 보안, 비공개 테스트 및 정식 오픈 출시)를 완료하는 전 과정을 단계별로 상세히 안내합니다.
목차
- 소개 및 아키텍처 준비
- Play Console에서 새 앱/게임 생성 (Create App)
- 키스토어(Keystore) 생성 및 빌드/서명 자동화
- Play Console 첫 번들 업로드 및 치명적 오류 해결
- 개인정보처리방침(Privacy Policy) 준비
- 앱 액세스 권한 / 로그인 세부정보 (App Access / Sign-in Details)
- 광고 선언 (Ads Declaration)
- 콘텐츠 등급 (IARC 콘텐츠 등급 설문)
- 타겟층 및 연령대 선택 (Target Audience)
- 앱 콘텐츠 대시보드 (App Content Dashboard)
- 데이터 보안 양식 (Data Safety Form)
- 법률 및 규제 선언 (정부, 금융 기능, 건강 앱)
- 스토어 설정 및 연락처 정보 (Store Settings)
- 기본 스토어 등록정보 및 그래픽 애셋 (Main Store Listing)
- 비공개 테스트 설정 및 검토 (Closed Testing)
- 광고 ID 선언 (Advertising ID)
- 검토를 위해 변경사항 전송 (Final Submission)
- 비공개 테스트 후 프로덕션 액세스 권한 신청 (Apply for Access to Production)
- 최종 승리: 프로덕션 액세스 권한(정식 출시) 승인 완료
- 출시 전 체크리스트 (완료 목록)
- Arar Games 및 당사 게임 소개
1. 소개 및 아키텍처 준비
Google Play 스토어에 새 앱을 게시할 때는 Google의 최신 보안 및 기술 정책을 반드시 준수해야 합니다.
- 번들 포맷:
.aab(Android App Bundle) 형식만 허용됩니다. APK 파일은 스토어 정식 배포용으로 유효하지 않습니다(단, 로컬 사이드로딩 테스트용 빌드는 가능합니다). - 최소 타겟 SDK: Google Play는 현재 새로 출시되거나 업데이트되는 앱에 대해 최소 Android API 레벨 36(Android 16) 이상을 타겟팅하도록 의무화하고 있습니다.
- 안전한 서명: v2/v3 스키마와 호환되는 2048비트 RSA 키로 앱에 서명해야 합니다.
2. Play Console에서 새 앱/게임 생성 (Create App)
Google Play Console 콘솔(play.google.com/console)에 로그인한 후, 모든 앱이 나열된 메인 화면 우측 상단의 파란색 "앱 만들기"(Create app) 버튼을 클릭하여 출시 절차를 시작합니다. 이 양식은 콘솔에서 앱의 디지털 식별자, 패키지 이름 및 기본 스토어 분류를 결정합니다.
A. 앱 세부정보
- 앱 이름(App Name):
- 스토어에서 사용자에게 공식적으로 표시되는 기본 이름입니다.
- 최대 30자로 제한됩니다(예:
YourAppName). - 권장사항: 제목에 불필요한 키워드를 채워 넣거나(keyword stuffing), 오해를 유발하는 홍보성 단어("Best", "Free", "#1" 등)를 사용하지 마십시오. Google Play 심사에서 거절(Rejection) 사유가 됩니다.
- 패키지 이름(Package Name):
- Android 생태계 내에서 앱을 고유하게 식별하는 Java/Android 패키지 식별자입니다(역방향 도메인 규칙, 예:
com.yourcompany.appname). - 최대 150자.
- ⚠️ 중요 규칙: 이 화면에서 앱을 생성하고 첫 번들을 업로드한 후에는 패키지 이름을 절대 다시 변경할 수 없습니다! 이는
AndroidManifest.xml또는 프로젝트 파일 내의ApplicationId(<ApplicationId>com.yourcompany.appname</ApplicationId>)와 완벽히 일치해야 합니다. 사용 가능 여부 확인(Check availability): 이 버튼을 누르면 지정한 패키지 이름이 Google Play 생태계의 다른 개발자에 의해 이미 등록되어 있는지 즉시 확인합니다.
- Android 생태계 내에서 앱을 고유하게 식별하는 Java/Android 패키지 식별자입니다(역방향 도메인 규칙, 예:
- 기본 언어(Default Language):
- 앱의 주 스토어 등록정보 언어입니다(예:
English (United States) – en-US또는한국어 – ko-KR). - 별도의 현지화 번역이 등록되지 않은 모든 국가의 사용자에게는 기본 언어로 스토어 정보가 노출됩니다.
- 앱의 주 스토어 등록정보 언어입니다(예:
B. 앱 유형, 가격 책정 및 선언
- 앱 또는 게임(App or Game):
- 제품의 기본 성격을 결정합니다(
앱또는게임). - 중요 참고사항: 이 선택은 스토어의 주 카테고리(앱 탭 또는 게임 탭)를 결정하며 나중에 변경할 수 없습니다.
- 제품의 기본 성격을 결정합니다(
- 무료 또는 유료(Free or Paid):
- 앱을 스토어에서 무료로 제공할지, 유료 결제 상품으로 판매할지 선택합니다.
- ⚠️ 되돌릴 수 없는 중요 규칙: Google Play 정책에 따라, 한 번 "무료"로 출시된 앱은 향후 절대 "유료"로 전환할 수 없습니다! 스토어에서 직접 판매하려면 처음에
유료를 선택해야 합니다. 무료로 배포하고 수익을 창출하려면 인앱 결제(In-App Purchase) 또는 AdMob 광고를 적용해야 합니다.
- 자동 보호(Automatic Protection):
- Google Play는 앱의 APK/AAB 코드에 자동 설치 프로그램 검사(installer check)를 추가합니다. 사용자가 Google Play 외부의 무단 소스에서 앱을 사이드로딩하면 Google Play에서 정품을 다운로드하도록 경고합니다.
- 선언(법적 선언 및 정책 준수):
- 개발자 프로그램 정책(Developer Program Policies): 앱이 Google Play 개발자 및 콘텐츠 정책을 완전히 준수함을 확인합니다.
- 미국 수출법(US Export Laws): 소프트웨어가 미국 수출 관리 규정 및 금수 조치를 준수함을 확인합니다.
- 앱 만들기(Create App):
- 양식을 확인한 후 우측 하단의 파란색 "앱 만들기"(Create app) 버튼을 클릭합니다. 콘솔이 앱을 시스템에 등록하고 앱의 기본 관리 패널(대시보드)로 이동합니다.
3. 키스토어(Keystore) 생성 및 빌드/서명 자동화
배포 프로세스를 오류 없이 반복 가능하게 만들기 위해 프로젝트 루트에 Deploy/ 폴더와 자동화 스크립트를 생성하는 것이 좋습니다.
A. 키스토어 생성 (1_CreateKeystore.bat)
JDK의 keytool을 사용하여 25년(10,000일) 동안 유효한 서명 키를 생성합니다.
keytool -genkeypair -v ^
-keystore "%KEYSTORE_PATH%" ^
-alias %ALIAS% ^
-keyalg RSA ^
-keysize 2048 ^
-validity 10000 ^
-storepass "%PASS%" ^
-keypass "%PASS%" ^
-dname "CN=SirketAdi, OU=Apps, O=SirketAdi, C=TR"
팁: Windows 배치 파일에서
set /p로 사용자에게 비밀번호를 입력받을 때 괄호가 포함된if (...)블록을 사용하면 구문 파싱 오류(: was unexpected at this time)가 발생할 수 있습니다.goto레이블로 제어 흐름을 관리하고 비밀번호 파라미터를 큰따옴표"%PASS%"로 감싸면 안정적으로 실행됩니다.
B. 자동 버전 증가 및 서명된 AAB 빌드 (2_BuildAndSign_AAB.bat)
Google Play는 업데이트마다 엄격하게 증가하는 versionCode를 요구합니다. 이를 자동으로 관리하기 위해 날짜와 시간을 기반으로 한 공식을 사용합니다.
# 연도의 마지막 자리 + 월 + 일 + 시 + 분 (예: 2026-10-06 02:42 -> 610060242)
$vc = (Get-Date).ToString('yy').Substring(1) + (Get-Date).ToString('MMddHHmm')
컴파일 및 서명 명령어:
dotnet build "Proje.Android.csproj" -c Release -f net9.0-android /p:AndroidPackageFormat=aab /p:ApplicationVersion=%VERSION_CODE% /p:ApplicationDisplayVersion=%VERSION_NAME%
jarsigner -sigalg SHA256withRSA -digestalg SHA-256 ^
-keystore "%KEYSTORE%" ^
-storepass "%PASS%" ^
-keypass "%PASS%" ^
-signedjar "%SIGNED_FILE%" ^
"%AAB_INPUT%" ^
%ALIAS%
프로세스가 완료되면 start "" "%OUTPUT%" 명령을 통해 서명된 파일이 포함된 대상 폴더가 Windows 탐색기에서 자동으로 열립니다.
4. Play Console 첫 번들 업로드 및 치명적 오류 해결
서명된 .aab 파일을 Google Play Console의 내부 테스트(Internal testing) 또는 프로덕션(Production) 트랙에 업로드할 때 다음과 같은 화면이 나타날 수 있습니다.
오류 1: 타겟 API 레벨 36(Android 16) 필수 요건
오류 메시지:
"Your app currently targets API level 35 and must target at least API level 36 to ensure it is built on the latest APIs optimized for security and performance." (앱이 현재 API 수준 35를 타겟팅하고 있으며, 보안 및 성능에 최적화된 최신 API를 기반으로 빌드되도록 하려면 최소 API 수준 36 이상을 타겟팅해야 합니다.)
해결 방법:
이는 배포를 가로막는 치명적 오류이며, 해결하지 않으면 출시를 진행할 수 없습니다.
Platforms/Android/AndroidManifest.xml파일에<uses-sdk>태그를 명시적으로 정의합니다.
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.yourcompany.appname">
<uses-sdk android:minSdkVersion="24" android:targetSdkVersion="36" />
...
</manifest>
- 프로젝트
.csproj파일의<PropertyGroup>에 다음을 추가합니다.
<AndroidTargetSdkVersion>36</AndroidTargetSdkVersion>
오류 2: 버전 코드가 이전보다 크게 높음 경고 (Version Code Significantly Higher)
경고 메시지:
"This release's version code is significantly higher than your previous version code. Over time, this will result in your app reaching the maximum limit for version codes... Learn more" (이 출시 버전의 버전 코드가 이전 버전 코드보다 훨씬 높습니다. 시간이 지나면 앱이 버전 코드의 최대 한도에 도달할 수 있습니다…… 자세히 알아보기)
해결 방법:
- 프로젝트의 이전 버전 코드가 작은 숫자(예: 1 또는 8)였는데 동적 날짜 형식(예: 6억 대)으로 전환했을 때 Google Play에서 이 경고를 표시합니다.
- 이는 출시를 차단하는 오류가 아닙니다. 경고 바로 아래에 있는 파란색
Proceed anyway(계속 진행) 링크를 클릭하면 건너뛸 수 있습니다. - 이후에는 이 숫자가 기준이 되므로 대규모 점프 경고가 다시 발생하지 않습니다.
5. 개인정보처리방침(Privacy Policy) 준비
Google Play 정책에 따라, 앱이 민감한 데이터를 수집하지 않더라도 유효한 SSL(HTTPS)을 갖추고 공개적으로 액세스 가능한 표준 웹페이지(PDF 불가) 형식의 개인정보처리방침 링크가 반드시 필요합니다.
GitHub 무료 호스팅 활용
GitHub 저장소의 마크다운 파일(blob/main/...)은 Google 시스템에서 유효한 표준 웹페이지로 직접 인정됩니다.
방침 문서에 포함되어야 할 핵심 조항
- 광고 서비스(Google AdMob): 배너, 전면, 보상형 광고. Android 광고 ID(
AD_ID), 기기 기술 데이터 및 대략적인 IP 위치 정보 사용 내역 명시. - 인앱 결제 및 정기 구독(Google Play Billing): 결제는 전적으로 Google 공식 인프라 내에서 처리되며, 개발자는 카드 번호나 결제 청구 정보에 일체 접근하지 않음.
- 분석 및 텔레메트리(Firebase Analytics & Crashlytics): 익명 사용 이벤트 및 비정상 종료(크래시) 보고서 수집.
- 동의 관리(Google UMP): GDPR 및 개인정보보호법을 준수하는 동의 창 제공 및 사용자가 설정에서 언제든지 환경설정을 변경할 권리 보장.
- 법적 면책 조항 및 특별 선언(예: 예측 분석 도구/경기 통계):
- 본 애플리케이션은 결코 도박이나 베팅 플랫폼이 아닙니다.
- 수학적 알고리즘 최적화 및 통계 분석 보조 기능만을 제공합니다.
- 공식 사이트로 이동할 때 공식 사이트의 계정 정보(ID/PW)를 저장하지 않으며, 2단계 인증/SMS 인증은 공식 기관 인터페이스에서 독립적으로 처리됩니다.
- 보안 유의사항: 개인정보처리방침 본문에는 개발자의 개인 GitHub 프로필 등 사적인 링크를 넣지 마십시오. 기업 공식 지원 이메일과 공식 웹사이트만 기재합니다.
6. 앱 액세스 권한 / 로그인 세부정보 (App Access / Sign-in Details)
Google 심사관이 앱을 검토하기 전에, 앱 내에 제한된 기능 영역이 있는지 여부를 선언해야 합니다.
- 선택 항목:
No(앱의 모든 기능이 제한 없이 직접 사용 가능함). - 설명: 앱에 회원가입, 사용자 로그인, 비밀번호 잠금 또는 유료 결제 잠금 화면이 없다면
No를 선택해야 합니다. 만약Yes를 선택하면 Google에서 테스트용 계정 아이디와 비밀번호 제공을 요구합니다.
7. 광고 선언 (Ads Declaration)
앱 내에 광고가 표시되는지 여부를 선언하는 단계입니다.
- 선택 항목:
Yes, my app contains ads(예, 앱에 광고가 포함되어 있습니다). - 설명: 앱에 AdMob 라이브러리가 포함되어 있거나 향후 광고를 게재할 계획이 있다면 '예'를 선택해야 합니다. 이 선택은 Google Play 스토어 등록정보에 "광고 포함" 라벨을 활성화하여 정책을 완벽히 준수하도록 합니다.
8. 콘텐츠 등급 (IARC 콘텐츠 등급 설문)
앱의 연령 제한 등급을 결정하기 위해 IARC(국제등급분류연합) 설문지를 작성해야 합니다.
A. 카테고리 선택 및 이메일 입력
- 카테고리:
All Other App Types(기타 모든 앱 유형) (게임, 도박, 소셜 미디어가 아닌 유틸리티, 도구, 계산기 등). - 이메일: 공식 연락처 이메일을 입력하고 IARC 이용약관에 동의합니다.
B. 설문 문항 답변 (Questionnaire)
1구역: 폭력성 및 사용자 간 커뮤니케이션
- 다운로드된 앱 (폭력, 성적 콘텐츠, 비속어):
No - 사용자 콘텐츠 공유 (사용자 간 음성, 메시지, 미디어 공유):
No
2구역: 콘텐츠 및 연령 제한 제품
- 온라인 콘텐츠 (음악/비디오 스트리밍 또는 전자상거래 카탈로그):
No - 연령 제한 제품 홍보 (담배, 주류, 도박):
No(앱에서 베팅을 허용하지 않으므로 반드시 No) - 기타 항목 (정밀 GPS 위치 공유):
No
3구역: 디지털 상품 및 기타 기능
- 디지털 상품 (디지털 가상 상품 판매):
No(현재 스토어 인앱 결제가 연결되어 있지 않다면 No, 연동되어 있다면 Yes를 선택하여 인앱 구매 배지 획득) - 현금 보상 (현금 환급, 기프트 카드):
No - 웹 브라우저 (인터넷 브라우저 / 검색 엔진):
No - 뉴스 / 교육 (뉴스 또는 교육용 제품):
No
이 모든 질문에 'No'로 답하면 전 세계에서 가장 넓은 연령층에 적합한 등급(PEGI 3, ESRB Everyone)을 부여받게 됩니다.
9. 타겟층 및 연령대 선택 (Target Audience)
앱의 타겟층을 결정할 때는 Google의 가족 정책(Designed for Families / Family Policy) 및 COPPA(어린이 온라인 개인정보 보호법) 규정에 따라 아동용인지 여부를 명확히 선언하는 것이 매우 중요합니다.
올바른 선택: 18 and over (만 18세 이상)만 단독 선택
- 왜 18세 이상만 선택해야 하는가?
- 법적 준수: 스포츠 통계, 배당률 및 경기 분석 도구는 성인 대상의 정보를 기반으로 합니다.
- 가족 정책의 엄격한 제약 회피: 만 13세 미만이나 13~17세를 선택하면 Google은 앱 내 광고 SDK에 아동 안전 인증을 요구하고 텔레메트리를 극도로 제한하며 훨씬 까다로운 심사를 진행합니다.
- 개인정보처리방침과의 일치: 개인정보처리방침에 명시된 "본 앱은 만 18세 이상의 사용자를 대상으로 합니다" 조항과 100% 일치합니다.
- 두 번째 단계 (앱이 의도치 않게 아동의 관심을 끌 수 있나요?):
- 이 질문에는 **
No(아니요)**라고 답해야 합니다. 인터페이스에 만화 캐릭터, 장난감 테마, 아동용 애니메이션이 없으므로 의도치 않게 아동을 유인할 위험이 없습니다.
- 이 질문에는 **
10. 앱 콘텐츠 대시보드 (App Content Dashboard)
Google Play Console은 좌측 메뉴의 정책 및 프로그램 -> 앱 콘텐츠(App content) 탭에 있는 체크리스트를 통해 앱의 법률 및 콘텐츠 준비 상태를 체계적으로 추적합니다.
개인정보처리방침, 로그인 권한, 광고, 콘텐츠 등급이 완료될 때마다 녹색 체크 아이콘(✓)이 표시됩니다. 목록의 나머지 항목(데이터 보안, 정부 기관, 금융 기능, 건강 앱)도 순서대로 완료해야 합니다.
11. 데이터 보안 양식 (Data Safety Form)
Google Play에서 가장 엄격하게 심사하는 항목 중 하나입니다. 앱과 사용된 서드파티 라이브러리가 어떤 데이터를 수집하고 제3자와 공유하는지 선언해야 합니다.
핵심 질문: 앱에서 필수 사용자 데이터 유형을 수집하거나 공유하나요?
- 첫 출시 시 권장 선택:
No(아니요). - 기술적 근거: 처음 업로드된
.aab패키지에 아직 AdMob SDK나 Firebase SDK가 실제로 컴파일 및 활성화되지 않았고 사용자 ID나 민감한 정보를 수집하지 않으므로,No를 선택하여 깔끔하게 양식을 통과합니다. - 향후 주의사항: 다음 버전에서 AdMob이나 Firebase 코드를 작성하고 활성화할 때는 본 양식으로 돌아와 "대략적인 위치", "앱 성능", "기기 또는 기타 ID (AD_ID)" 항목을
Yes로 업데이트해야 합니다.
미리보기를 확인한 후 저장합니다.
12. 법률 및 규제 선언 (정부, 금융 기능, 건강 앱)
A. 정부 앱 선언
- 선택 항목:
No(본 앱은 공식 정부 기관을 대리하지 않습니다).
B. 금융 기능 선언
- 선택 항목: 페이지 맨 아래의
My app doesn't provide any financial features(내 앱은 어떠한 금융 기능도 제공하지 않습니다). - 확인: 열리는 팝업 창에서 금융 관련 면허나 공식 문서를 제출할 필요가 없음을 확인합니다.
C. 건강 앱 선언
- 선택 항목: 페이지 맨 아래의
My app does not have any health features(내 앱에는 건강 관련 기능이 없습니다). - 확인: 팝업 창에서 지역별 보건 건강 문서가 필요하지 않음을 확인합니다.
13. 스토어 설정 및 연락처 정보 (Store Settings)
스토어 내 카테고리와 사용자가 개발자에게 연락할 수 있는 공식 창구를 구성합니다.
- 앱 카테고리(App Category):
스포츠(Sports)또는생산성/도구(Utilities / Tools). - 태그(Tags): 관련 키워드 태그를 선택합니다(예: Sports, Tools).
- 스토어 등록정보 연락처 세부정보(Store Listing Contact Details):
- 이메일 주소:
destek@sirketadi.com(공식 고객지원 이메일 필수 입력). - 웹사이트:
https://company.com
- 이메일 주소:
- 외부 마케팅(External Marketing): Google이 Google Play 외부의 마케팅 채널에서 앱을 홍보할 수 있도록 체크 상태를 유지합니다.
14. 기본 스토어 등록정보 및 그래픽 애셋 (Main Store Listing)
스토어의 첫인상은 사용자의 다운로드 결정에 직접적인 영향을 미치는 가장 핵심적인 영역입니다.
A. 텍스트 등록정보
- 앱 이름(App Name): 최대 30자 (예:
15te15 - Spor Toto Assistant). - 간단한 설명(Short Description): 최대 80자 (예:
Formula optimization, probability calculation and smart Spor Toto coupon assistant.). - 자세한 설명(Full Description): 제품 기능, 알고리즘적 강점 및 법적 면책 조항을 포함한 상세한 소개.
B. 시각적 애셋 규격 표준
- 앱 아이콘(App Icon): 정확히
512 x 512 px, 32비트 PNG, 최대 파일 크기 1MB. - 그래픽 이미지(Feature Graphic): 정확히
1024 x 500 px, JPG 또는 24비트 PNG, 최대 15MB. - 휴대전화 스크린샷(Phone Screenshots):
- 최소 2장, 최대 8장.
- 최소 크기: 1080 px (예:
1080 x 2340 px). - 화면 비율: 16:9 또는 9:16.
C. 생성형 AI 콘텐츠 선언
- 스토어 홍보 이미지를 디자인할 때 AI 보조 도구를 사용했더라도, 사용자를 호도하는 사실적인 사람 얼굴이나 공인 이미지를 생성하지 않았다면 **
Don't label assets(애셋에 라벨을 지정하지 않음)**을 선택합니다.
15. 비공개 테스트 설정 및 검토 (Closed Testing)
Google Play Console에서 새로 생성된 개인 개발자 계정의 경우, 프로덕션 채널로 직행하기 전에 비공개 테스트(Closed Testing) 프로세스를 완수하는 것이 필수 의무 사항입니다.
A. 검토를 위해 변경사항 전송 (게시 개요)
모든 스토어 설정과 양식 작성이 완료되면 게시 개요에 검토 대기 중인 변경사항이 나열됩니다.
그러나 우측 상단의 "검토를 위해 변경사항 전송" 버튼을 활성화하려면 앱이 최소 1개 이상의 테스트 트랙(Closed Testing)에서 버전이 구성되어 있어야 합니다.
B. 비공개 테스트 3단계 절차
비공개 테스트를 완료하기 위한 3가지 필수 단계:
- 국가 및 지역 선택(Select countries and regions):
- 앱을 테스트할 대상 국가를 선택하고(기본값으로 전 세계 또는 특정 국가 선택 가능), 우측 하단의 저장을 누릅니다.
- 테스터 선택(Select testers):
- 테스터(Testers) 탭에서 기존 이메일 목록(Email List)을 선택하거나 새 목록을 생성합니다.
- 개인 Google Play 계정에서 정식 프로덕션 권한을 획득하려면, Google은 최소 20명의 테스터가 14일 동안 연속으로 테스트에 참여할 것을 요구합니다. 따라서 목록에 충분한 수의 실제 사용자를 포함해야 합니다.
- 목록을 선택한 후 우측 하단의 **변경사항 저장(Save changes)**을 클릭합니다.
- 새 버전 만들기(Create a new release):
- 국가와 테스터 설정이 완료되면 상단에 *"2 of 4 complete"*가 표시됩니다.
- 우측 상단의 파란색
Create new release(새 버전 만들기) 버튼을 클릭하여 버전 생성 단계로 이동합니다.
- 서명된
.aab패키지를 업로드합니다. 업로드가 완료되면 Google이 패키지를 자동으로 분석합니다.
- 이미지에서 보듯
Target SDK: 36이 정상 감지되고 버전Version: 610060410및 아키텍처가 검증됩니다. - **
Next(다음)**을 클릭하면 버전 코드 급상승에 따른 경고 화면이 나타납니다.
- 해결 방법: "This release's version code is significantly higher than your previous version code" 경고 바로 아래의 파란색
Proceed anyway링크를 클릭합니다. - 오류 차단이 해제되면 우측 하단의 파란색
Save(저장) 버튼을 클릭하여 버전을 성공적으로 저장합니다.
이 단계들이 완료되면 게시 개요(Publishing overview) 화면으로 돌아가 Send changes for review(검토를 위해 변경사항 전송) 버튼을 통해 Google 심사 프로세스를 시작할 수 있습니다.
C. 자주 발생하는 상황: 테스트 링크 접속 시 "App not available"(앱을 사용할 수 없음) 경고
비공개 테스트 참여 링크(play.google.com/apps/testing/com...)를 열었을 때 개발자들이 가장 흔히 접하는 화면입니다.
"App not available - A testing version of this app hasn't been published yet or isn't available for this account." (앱을 사용할 수 없음 - 이 앱의 테스트 버전이 아직 게시되지 않았거나 이 계정에서는 사용할 수 없습니다.)
원인 및 해결 방법:
- 심사 진행 중(In Review): 비공개 테스트 버전을 생성하여 심사에 제출했더라도 Google 심사팀이 패키지를 공식적으로 승인하기 전까지는 링크가 활성화되지 않습니다. Play Console에서 상태가 "Available to testers"(테스터가 사용 가능)로 변경되면 링크가 열립니다.
- Google 계정 불일치: 브라우저에 로그인된 Google 계정이 Play Console의 테스터 목록에 추가된 이메일 주소와 정확히 일치해야 합니다. 권한이 없는 계정이나 시크릿 모드에서는 접근할 수 없습니다.
- 서버 전파 지연 시간: Google에서 심사를 승인한 후에도 비공개 테스트 링크가 전 세계 스토어 CDN 서버에 전파되는 데 보통 1~2시간 정도 소요될 수 있습니다.
D. 테스트 프로그램 참여 (Become a Tester - Opt-in)
심사가 승인되고 링크가 활성화되면 다음과 같은 공식 초대 화면이 열립니다.
- 페이지에는 앱 아이콘, 개발자 이름 및 테스트 버전에 대한 참여 안내문이 표시됩니다.
- 파란색
Become a tester(테스터 참여) 버튼을 클릭하면 해당 계정이 테스트에 정식 등록됩니다. - 다음 화면에서 "Download it on Google Play" 링크를 클릭하여 Android 기기의 Google Play 스토어에서 직접 테스트 앱을 다운로드할 수 있습니다.
16. 광고 ID 선언 (Advertising ID)
Android 13(API 33) 이상을 타겟팅하는 모든 앱에 대해 Google Play는 광고 ID(AD_ID) 사용 여부를 명시적으로 선언하도록 의무화하고 있습니다.
핵심 질문: 앱에서 광고 ID를 사용하나요?
이 페이지에서 Google의 중요한 차단 규칙은 다음과 같습니다.
"If you say that your app uses advertising ID, we will block releases that don't include the com.google.android.gms.permission.AD_ID permission in the manifest file when targeting Android 13." (앱에서 광고 ID를 사용한다고 선언한 경우 Android 13을 타겟팅할 때 매니페스트 파일에 com.google.android.gms.permission.AD_ID 권한이 포함되지 않은 출시는 차단됩니다.)
- 선택지 1 (권장):
No(아니요). - 현재 업로드한 비공개 테스트 패키지에는 AdMob SDK나 교차 프로모션 모듈이 아직 실제로 컴파일되지 않았고
AndroidManifest.xml파일에AD_ID권한이 없습니다. 따라서No를 선택하고 저장하면 매니페스트 충돌이 발생하지 않습니다. - 선택지 2 (Yes를 선택할 경우):
Yes를 선택할 경우 사용 용도로[x] Advertising or marketing(광고 또는 마케팅)을 체크하고, 매니페스트에 아직 권한이 추가되지 않았으므로 페이지 하단의 "Turn off release errors"(출시 오류 사용 중지) 확인란(I understand the ramifications of not including the com.google.android.gms.permission.AD_ID permission...)을 반드시 체크해야 출시 차단을 해제할 수 있습니다.
두 경우 모두 선택 후 우측 하단의 **Save(저장)**를 클릭합니다.
17. 검토를 위해 변경사항 전송 (Final Submission)
스토어 등록정보, 개인정보처리방침, 보안 양식, 법률 선언, 타겟층 및 비공개 테스트 버전 준비가 모두 완료되면 게시 개요(Publishing overview) 화면으로 돌아옵니다.
- Submit 14 changes for review (14개의 변경사항을 검토를 위해 제출): Google Play는 모든 양식 선언과 테스트 버전을 단일 검토 패키지로 통합합니다(이미지처럼 14개 변경사항이 대기 상태가 됨).
- 파란색
Submit 14 changes for review버튼을 클릭하여 Google의 공식 심사 프로세스를 시작합니다. - 백그라운드에서 Google의 자동 품질 빠른 검사가 실행된 후 Google Play 심사팀의 평가 대기열에 앱이 등록됩니다. 개인 계정의 경우 일반적으로 24~72시간 이내에 심사가 완료됩니다.
18. 비공개 테스트 후 프로덕션 액세스 권한 신청 (Apply for Access to Production)
개인 개발자 계정에 요구되는 비공개 테스트 절차(최소 20명의 테스터가 14일 동안 연속으로 활발히 테스트)가 완료되면, Play Console 기본 대시보드의 "프로덕션 액세스 신청"(Apply for production) 버튼이 활성화됩니다. 이 버튼을 클릭하면 앱이 실제로 충분히 테스트되었고 본 배포 준비가 완료되었는지 검증하기 위한 3단계의 포괄적인 신청 양식이 제공됩니다.
양식 3단계 구성:
- 비공개 테스트 정보 (About your closed test): 테스터를 어떻게 모집했는지, 피드백을 어떻게 수집했는지, 수집된 피드백을 바탕으로 앱을 어떻게 개선했는지를 묻습니다.
- 앱 정보 (About your app): 앱의 타겟 고객과 사용자에게 제공하는 핵심 가치를 설명합니다.
- 프로덕션 준비 상태 (Your production readiness): 정식 출시 후 온라인 오류 추적 및 사용자 리뷰 관리 방안을 선언합니다.
주요 핵심 질문 및 신청서 작성 예시 (영문 원문 및 한글 해설)
1. "How did you recruit users for your closed testing? For example, did you ask friends and family, or use a paid testing provider?"
(비공개 테스트 사용자를 어떻게 모집하셨나요? 예를 들어 가족 및 지인에게 요청하셨나요, 아니면 유료 테스트 업체를 이용하셨나요?)
중요한 규칙: Google은 봇이나 유료 인공 테스트 업체를 극도로 배척합니다. 테스터가 실제 유기적(Organic) 사용자, 가까운 지인 및 관련 소셜 미디어 커뮤니티 회원임을 명시하는 것이 가장 안전합니다.
I recruited testers organically through friends, family, and colleagues interested in sports analysis. Additionally, I invited active football prediction fans from targeted social media groups (Reddit & sports communities). No paid services were used; all were real, active users.
2. "How easy was it to recruit testers for your app?"
(앱의 테스터를 모집하는 과정이 얼마나 수월했나요?)
- 권장 선택지:
Neither difficult or easy(보통) 또는Easy(쉬움). 이 선택은 모집 과정이 자연스럽고 균형 있게 진행되었으며 인위적인 조작 네트워크를 사용하지 않았음을 나타냅니다.
3. "Describe the engagement you received from testers during your closed test"
(비공개 테스트 기간 동안 테스터들로부터 받은 참여 활동에 대해 설명해주세요:)
(Google 심사 팁: 사용자가 모든 핵심 기능을 고루 사용했는지, 그 사용 패턴이 실제 현실 사용자의 행동과 일치했는지 기술)
Testers actively used all core features: match fixtures, filters, and coupon generation. Their engagement matched real user behavior, logging in regularly around weekly match days to create coupons and review predictions. All tester activity closely mirrored real-world football fan usage.
4. "Provide a summary of the feedback that you received from testers. Include how you collected the feedback."
(테스터들로부터 받은 피드백 요약과 피드백을 수집한 구체적인 방식을 기재해주세요:)
Feedback was collected via Google Play internal feedback, emails, and tester messaging groups. Testers appreciated the fast coupon generator but suggested improving font readability on small screens, adding clearer filter descriptions, and optimizing fixture loading on slow mobile networks.
2단계: 앱 정보 (About your app)
이 단계에서는 앱의 타겟 고객, 사용자에게 제공하는 부가가치, 그리고 첫해 예상 다운로드 수를 묻습니다.
1. "Who is the intended audience of your app?"
(앱의 주요 타겟 사용자는 누구인가요?)
The intended audience includes adult football fans, sports enthusiasts, and Toto players seeking analytical tools to plan predictions. It is designed for users aged 18+ who want structured match fixture insights, mathematical coupon filtering, and systematic statistical analysis.
2. "Describe how your app provides value to users"
(앱이 사용자에게 어떻게 가치를 제공하는지 설명해주세요:)
The app provides value by automating complex coupon filtering and Toto calculations, saving users substantial time. It offers clean weekly fixture overviews, probability statistics, and intuitive mathematical tools that help sports fans make well-structured, data-informed prediction plans.
3. "How many installs do you expect your app to have in your first year?"
(출시 첫해에 앱이 몇 건의 설치를 달성할 것으로 예상하시나요?)
- 권장 선택지:
0 - 10K(인디 개발자로서 유기적이고 현실적인 신뢰성 높은 목표치).
3단계: 프로덕션 준비 상태 (Your production readiness)
마지막 단계에서는 비공개 테스트를 통해 배운 점을 토대로 구현한 개선사항과 앱이 본 배포 준비를 마쳤다고 판단한 근거를 묻습니다.
1. "What changes did you make to your app based on what you learned during your closed test?"
(비공개 테스트를 통해 배운 내용을 바탕으로 앱에 어떤 변경사항을 적용하셨나요?)
권장 가이드: 이전 단계에서 언급한 피드백 내용(작은 화면 대응, 글꼴 크기, 필터 레이블 명확화 및 데이터 캐싱)과 완벽하게 일치하고 논리적으로 이어져야 합니다.
Based on tester feedback, we adjusted font scaling and spacing for smaller screens, added descriptive labels to filter options, and optimized fixture caching for slower network connections. We also streamlined the coupon generation interface to make navigation smoother and more intuitive.
2. "How did you decide that your app is ready for production?"
(앱이 정식 프로덕션 출시를 위한 준비가 완료되었다고 어떻게 판단하셨나요?)
권장 가이드: Android Vitals의 공식 기술 지표(크래시율 0%, ANR 응답 없음 0%), 14일간의 테스트 기간, 다양한 Android 기기 및 버전에서의 안정성을 강조해야 합니다.
We confirmed production readiness through 14 days of closed testing with zero crashes and zero ANRs in Android Vitals. All core workflows (fixture browsing, filtering, and coupon generation) executed smoothly across diverse devices, and testers confirmed high stability and complete features.
모든 필드를 작성한 후 우측 하단의 파란색 Apply(신청) 버튼을 클릭하여 공식 프로덕션 액세스 권한 신청을 완료합니다.
신청서 제출 완료 화면 (심사 진행 상태)
'Apply' 버튼을 누르면 Play Console 메인 제어판으로 돌아가며, 프로덕션(Production) 페이지에 다음과 같은 공식 심사 카드가 표시됩니다.
"We have your application for production access" (프로덕션 액세스 신청서가 접수되었습니다)
"We're reviewing your application form. We'll email the account owner with an update. This usually takes 7 days or less, but may occasionally take longer." (신청서를 검토하고 있습니다. 진행 상황은 계정 소유자에게 이메일로 안내해 드립니다. 일반적으로 7일 이하가 소요되지만 경우에 따라 더 오래 걸릴 수 있습니다.)
이 단계에서 알아두어야 할 사항:
- 심사 소요 시간: 화면에는 공식적으로 *"7일 이하"*로 표시되지만, 답변 내용이 논리적이고 앱의 크래시율이 0%인 경우 대개 24시간에서 72시간 이내에 승인 결과가 도착합니다.
- 결과 통보: 평가가 완료되면 계정 소유자의 이메일 주소로 공식 승인 알림이 전송됩니다(19장 참조).
- 대기 기간 중 행동: 추가적인 조치를 취할 필요가 없습니다. 비공개 테스트 트랙은 그대로 유지하고 Play Console 심사팀의 결정을 기다리면 됩니다.
19. 최종 승리: 프로덕션 액세스 권한(정식 출시) 승인 완료
새로운 개인 개발자 계정에서 Google Play Console의 가장 험난한 관문인 비공개 테스트(최소 20명의 테스터를 통한 14일간의 활성 테스트) 과정을 성공적으로 마치고 오픈 신청을 완료하면, Google Play Console 팀으로부터 다음과 같은 공식 승인 이메일을 받게 됩니다.
"Congratulations! Your app has been granted Google Play production access" (축하합니다! 귀하의 앱에 Google Play 프로덕션 액세스 권한이 부여되었습니다)
"You applied for Google Play production access for your app, and this has now been granted. Production is where you make your app available to billions of users on Google Play." (앱의 Google Play 프로덕션 액세스 권한을 신청하셨으며 승인되었습니다. 프로덕션을 통해 Google Play의 수십억 명의 사용자에게 앱을 제공할 수 있습니다.)
이 이메일이 뜻하는 바는 무엇인가요?
- 전 세계 일반 공개 배포: 앱이 이제 소수의 초대된 비공개 테스터를 넘어 전 세계 수십억 명의 Android 사용자에게 정식 배포될 자격을 얻었습니다.
- 개인 계정 신뢰도 임계값 돌파: Google의 '20인 테스터 / 14일' 강제 정책 요건을 공식적으로 충족하여 개발자 계정이 신뢰할 수 있는 상태로 격상되었습니다.
- 원클릭 정식 출시: Play Console 패널의 프로덕션(Production) 채널로 이동하여 비공개 테스트에서 완벽히 검증된 패키지를 스토어 매대에 즉시 출시하거나 새 버전을 바로 배포할 수 있습니다.
20. 출시 전 체크리스트 (완료 목록)
출시 단계의 모든 점검 항목:
- Play Console에서 앱 ID 및 고유 패키지 이름을 생성했는가?
- 서명된
.aab패키지가targetSdkVersion 36으로 컴파일되었는가? - versionCode가 이전 버전보다 큰가? (경고 발생 시 Proceed anyway를 클릭했는가?)
- 개인정보처리방침 URL이 활성화되어 있으며 HTTPS로 정상 접속되는가?
- 앱 액세스 권한이
No로 기록되었는가? - 광고 선언에
Yes가 올바르게 체크되었는가? - IARC 연령 등급 설문을 완료하고 인증서를 발급받았는가?
- 타겟층이
18 and over로 선택되었는가? - 데이터 보안(Data Safety) 양식이 모두 작성되었는가?
- 정부, 금융 및 건강 관련 선언이 모두
No로 저장되었는가? - 스토어 그래픽 애셋(512x512 아이콘, 1024x500 그래픽 이미지, 스크린샷)이 모두 업로드되었는가?
- 비공개 테스트: 대상 국가/지역이 선택 및 저장되었는가?
- 비공개 테스트: 테스터 목록이 선택 및 저장되었는가?
- 비공개 테스트: 서명된
.aab패키지가 업로드되고 버전이 생성되었는가? - 광고 ID: 첫 출시 버전용으로
No로 저장되었는가? - 게시 개요: 모든 변경사항을 Google 심사로 전송했는가?
- 비공개 테스트 절차를 완료하고 프로덕션 액세스 권한(Production Access)을 승인받았는가?
21. Arar Games 및 당사 게임 소개
저희 인디 개발 스튜디오에서 독자적으로 개발한 모든 게임, 독창적인 메커니즘 및 최신 업데이트를 직접 경험해보시려면 공식 스토어 페이지를 방문해주세요.
🎮 출시 게임 타이틀:
- 🛡️ Blocked: Pixel Panzer:
레트로 픽셀 탱크 액션, ColorWheel 속성 포탄 상성 배틀, 다이내믹 날씨 시스템, 박진감 넘치는 보스전, 글로벌 순위표 및 Google Play 업적 완벽 지원!
👉 Google Play 다운로드 (Android & PC) | Microsoft Store (Windows PC) - 🎨 Paint Trek:
다채로운 픽셀과 광활한 우주 분위기 속에서 펼쳐지는 순발력 중심의 아케이드 액션.
👉 Google Play | Microsoft Store (PC & Xbox) - 🚀 Space Dodger:
깊은 우주를 배경으로 빠르게 질주하며 장애물을 회피하는 박진감 넘치는 레트로 아케이드.
👉 Google Play 다운로드
📢 소셜 미디어 및 커뮤니티:
최신 심층 기술 가이드, 개발 일지(DevLog) 및 게임 업데이트 소식을 확인하시려면:
- 🎵 TikTok: @arargamesstudio
- 📸 Instagram: @arargamesstudio
- 🐦 X (Twitter): @arargamesstudio
- 📺 YouTube: @koreaaria
- 🧵 Threads: @arargamesstudio
- 📘 Facebook: arargamesstudio
문서 작성 및 보관: Arar Games 개발자 기술 문서 아카이브
Hiç yorum yok:
Yorum Gönder