처음으로 스토어 심사 제출을 해보게되어 단순 기록의 목적으로 작성한 글이며 자세한 배포 방법은 이미 잘 쓰여진 글들이 많아 생략하였다.
프로젝트의 버전 명명 규칙에 따라 pubspec.yaml
에 앱 버전(버전이름+코드)을 업데이트
한다. 내가 속한 회사에서는 코드를 build하는 시점의 unix timestamp를 버전의 코드로 사용하였고 해당 timestamp 이름으로 브랜치(patch/$timestamp)를 별도로 생성하여 버전관리를 하였다.
/*코드 추출용 터미널 명령어*/
date +%s
터미널에서 각 OS별로 빌드하고 Google/AppStore에 새로운 버전을 업로드 한 뒤, 서밋을 진행한다. 터미널에서 OS별로 빌드하는 명령어는 다음과 같다.
/*IOS*/
flutter build ipa
/*Android*/
flutter build appbundle
각 OS별로 빌드가 완료되면 Android는 aab(andriod app bundle), iOS는 ipa(iOS App Store Package)가 생성된 경로를 터미널에서 결과값으로 얻을 수 있다.
Android
는 해당 경로에 생성된 파일을 수동으로 https://play.google.com/console
의 App Bundle 탐색기
메뉴를 통해 업로드 하고 새 버전 업로드 버튼을 누른다. 그 뒤 프로덕션
메뉴의 새 버전 만들기
를 클릭한 뒤 파일 업로드 작업 및 내용 입력 과정을 끝내고 제출을 누르면 심사가 시작된다.
iOS
는 Runner.xcarchive의 distribute app
기능을 사용하면 TestFlight
에 자동으로 빌드 파일을 업로드하고 내부 테스트를 위해 별도의 파일도 추출(export)할 수 있다. 해당 과정을 거친 뒤, https://appstoreconnect.apple.com
의 AppStore
메뉴에서 iOS 앱 + 버튼을 클릭하고 새버전을 양식에 맞춰 등록한 뒤 제출을 누루면 심사가 시작된다.
심사 접수 외 내부 테스트는 Firebase의 App Distribution
기능을 활용하여 각 OS별로 파일을 업로드 한 뒤, 지정된 테스터에게 메일을 발송하여 별도의 테스트를 실시하였다.
<!--21.08.27 Firebase AAB 업로드 이슈-->
Firebase에 AAB 업로드시 인증서가 다시 서명되어 카카오에 등록되지 않은 인증서로 소셜 로그인 요청이 실행되어 로그인이 되지 않은 문제가 발생하였고 이를 해결하기 위해 Firebase쪽에는 APK로 업로드하는 것으로 결정하였다.
flutter build apk <-- apk build command