구글 플레이스토어에 '여행친구'라는 앱을 출시하면서 앱 출시 절차와 비공개테스트에 대해 간략히 적어볼까 한다.
여행친구 앱: https://play.google.com/store/apps/details?id=net.bluelegend.tourfriend
1. Google Play 개발자 계정 등록
- https://play.google.com/console
- Google Play Console에 접속하여 계정을 생성
- 약 48시간 내에 계정이 활성화
- 1회성 25달러
- 약 48시간 내에 계정이 활성화
- Google Play Console에 접속하여 계정을 생성
- 본인 확인
- jpg, pdf 가능
- 주민등록등본: 아파트 관리비 명세서를 2번 제출했다가 빠꾸맞고 등본제출해서 패스함
- 등본 제출시 거절당하는 경우도 있음(구글 맘대로~~)
- jpg, pdf 가능
- 전화번호
- +8210xxxxxxxx
2.앱 출시 준비
- 출시 버전을 구성하고 빌드하고 테스트
- 준비
- 앱 빌드 파일 (.apk 또는 .aab 파일)
- Android App Bundle (.aab) 형식을 권장
- 앱 아이콘
- 512x512 크기의 고해상도 아이콘 (32비트 PNG 형식, 투명도 없음)
- 로고 만들어주는 사이트를이용하면 편리
- 스크린샷
- 각 기기(폰, 태블릿 등)에서 최소한 하나의 스크린샷
- 안내된 사이즈만 맞으면 되는줄 알았는데 안올라갈때는 다른 사이즈로 올려야 함.
- 앱 설명
- 앱에 대한 설명
- 앱 카테고리 및 태그
- 앱이 속한 카테고리를 선택하고, 관련 태그를 설정
- 앱 개인정보처리방침 URL
- 사용자 데이터를 수집하는 앱이라면, 개인정보처리방침을 기재
- 예전에는 개인정보 포털에서 개인정보처리방침 만들수 있었으나 현재는 안됨
- 다른 사이트나 다른 앱을 참고해서 개인정보처리방침을 만들면 통과되기 쉬움
- 앱 빌드 파일 (.apk 또는 .aab 파일)
- 등록
- Google Play Console에 로그인하여 '앱 만들기'를 클릭
- 앱의 기본 정보를 입력
- 앱 이름, 설명, 카테고리, 앱 아이콘 및 스크린샷 등
- App Content
- 앱의 내용에 대한 정보(연령 제한, 콘텐츠 등급, 개인정보처리방침 등)를 입력
- 버전 지정 (개발자가 아니면 이 부분은 건너뛰고, 제일아래 3.테스트로 가시길)
- 앱 서명 (App Signing)
- 자체 서명
- 개인 키를 사용(구글 콘솔에서 생성)
- Google Play App Signing
- Google의 앱 서명 서비스를 사용하는 것이 더 권장
- APK 또는 Android App Bundle에 서명 설정
- 서명 설정
- 키스토어 생성
- keytool -genkey -v -keystore ~/my-release-key.jks -keyalg RSA -keysize 2048 -validity 10000 -alias my-key-alias
- my-release-key.jks 파일이 생성
- C:\Users\TJ-BU-702-P25
- -keystore %userprofile%\upload-keystore.jks
- 사용자 폴더에 upload-keystore.jks 이름의 키스토어 파일을 생성한다.
- 파일 이름은 사용자가 임의로 정할 수 있다.
- -storetype JKS
- 키 스토어 타입을 JKS로 지정한다. 자바9에서는 JKS를 필요로 하기 때문에 사용한다.
- 기본값은 PKS12이다.
- -keyalg RSA -keysize 2048 -validity 10000
- 2048비트 RSA 키로 10000일 동안 유효한 키를 만든다
- -alias
- 키 스토어의 별칭을 지정
- Enter keystore password :
- 키 저장소 비밀번호 입력
- my-release-key.jks 파일이 생성
- keytool -genkey -v -keystore ~/my-release-key.jks -keyalg RSA -keysize 2048 -validity 10000 -alias my-key-alias
- 키스토어 속성 파일 생성
- 프로젝트 폴더 내에 키 스토어 파일을 이동
- android 하위 폴더에 ' key.properties ' 의 이름을 가진 파일을 하나 생성
- storePassword=bluelegend
keyPassword=bluelegend
keyAlias=my-key-alias
storeFile=../../my-release-key.jks
- storePassword=bluelegend
- ※
- 사용자 홈디렉토리
- storeFile=.~/my-release-key.jks
- 사용자 홈디렉토리
- 키스토어 생성
- 그레이들에 앱 서명 등록하기
(자동 서명 등록하기)- android > app > build.gradle
- 앱 버전 설정
- defaultConfig {
// TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html).
applicationId = "net.bluelegend.tripbolgguri"
// You can update the following values to match your application needs.
// For more information, see: https://flutter.dev/to/review-gradle-config.
minSdk = flutter.minSdkVersion
targetSdk = flutter.targetSdkVersion
// versionCode = flutter.versionCode
// versionName = flutter.versionName
versionCode = 1 // 앱의 버전 코드: 앱이 업데이트 될때마다 증가
versionName = "1.0" // 사용자에게 보여지는 버전 이름
}
- defaultConfig {
- 서명구성 추가
- def keystoreProperties = new Properties()
def keystorePropertiesFile = rootProject.file('key.properties')
if (keystorePropertiesFile.exists()) {
keystoreProperties.load(new FileInputStream(keystorePropertiesFile))
}
android {
...
}
- def keystoreProperties = new Properties()
- buildTypes 부분
- // 기존 빌드 타입 설정
// buildTypes {
// release {
// // TODO: Add your own signing config for the release build.
// // Signing with the debug keys for now, so `flutter run --release` works.
// signingConfig = signingConfigs.debug
// }
// }
// 변경된 빌드 타입 설정
signingConfigs {
release {
keyAlias keystoreProperties['keyAlias']
keyPassword keystoreProperties['keyPassword']
storeFile keystoreProperties['storeFile'] ? file(keystoreProperties['storeFile']) : null
storePassword keystoreProperties['storePassword']
}
}
buildTypes {
release {
signingConfig signingConfigs.release
}
}
- // 기존 빌드 타입 설정
- 앱 버전 설정
- 앱 서명이 적용되지 않는다면
- flutter clean
- android > app > build.gradle
- 앱 번들 빌드
- aab로 만들기
- flutter build appbundle
- aab로 만들기
- 릴리스 빌드 생성:
- flutter build apk
- X
- 키스토어 설정
- android/app 디렉토리의 build.gradle
- android {
...
signingConfigs {
release {
keyAlias 'my-key-alias'
keyPassword 'your-key-password'
storeFile file('path/to/your/my-release-key.jks')
storePassword 'your-store-password'
}
}
buildTypes {
release {
signingConfig signingConfigs.release
}
}
}
- android {
- android/app 디렉토리의 build.gradle
- 키스토어 설정
- 서명 설정
- 자체 서명
- 업로드
- 가격 및 배포
- 유료인지 무료인지 선택
- 한 번 무료로 설정한 앱은 나중에 유료로 변경할 수 없음
- 국가 선택
- 앱을 배포할 국가 및 지역을 설정
- 테스트 사용자 그룹 설정
- 앱을 공개적으로 배포하기 전에 베타 테스터 또는 알파 테스터에게 먼저 앱 제공 가능
- 유료인지 무료인지 선택
- 앱 검토 및 배포
- Google에서 앱을 검토
- 몇 시간에서 며칠
- 일주일 이내
- 변경사항 삭제하면 오래 걸림
- 일주일 이내
- 몇 시간에서 며칠
- Google에서 앱을 검토
- 앱 관리
- Google Play Console에서 앱 업데이트를 관리
- 앱의 통계, 다운로드 수, 평가 및 리뷰 등을 지속적으로 확인하고, 필요한 경우 업데이트를 통해 앱을 개선
3. 테스트 : 비공개테스트 후에 프로덕션으로 진행됨
- 내부 테스트: 선택사항
- 신뢰할 수 있는 소규모 테스터 그룹에 빌드를 배포
- 비공개테스트: 필수
- 개발자가 관리하는 광범위한 사용자 그룹과 앱을 공유
- 테스터 20명 이상이 테스터로 신청하고 14일간 테스트를 진행하는 것
- 주의사항
- 에뮬레이터 사용시 거절이나 추가테스트를 요청받을 수 있음- 구글 정책이 수시로 변경될 수 있음
- 안정적인 통과를 위해 가능한 많은 테스트 계정 등록 및 설치 필요
- 14일 테스트 동안 실기기에서 추가 실행 필요
※ 비공개테스트 테스터 모집 및 진행이 번거롭네요.
(대행: https://bluelegend.tistory.com/1 )
- 공개 테스트: 선택사항
- 테스트 버전을 Google Play에 표시
- 프로덕션 액세스 권한이 있어야 공개 테스트 사용 가능
- 프로덕션 액세스 신청
- 비공개 테스트 후 비공개 테스트 정보, 앱 정보, 프로덕션 준비와 같이 구글에서 프로덕션 배포를 위해 제공해야 하는 일종의 설문
- 사용자에게 앱을 제공
- 프로덕션 액세스 권한을 신청하려면 20명 이상의 테스터가 비공개 테스트에 참여하겠다고 선택해야 하고 이 테스터들은 최근 14일 동안 연속적으로 비공개 테스트에 참여하겠다고 선택한 상태여야 함
반응형
'프로그램 개발 > 앱 출시' 카테고리의 다른 글
구글 플레이콘솔에서 같은 앱을 다른 이름으로 출시하고 싶을때 (1) | 2024.12.10 |
---|---|
구글 플레이스토어 앱 출시 매뉴얼 (0) | 2024.12.10 |
구글 비공개테스트 대행 (2) | 2024.11.20 |