[TIL] Flutter iOS/Android 배포

link717·2021년 8월 26일
1

TIL

목록 보기
46/53
post-thumbnail

처음으로 스토어 심사 제출을 해보게되어 단순 기록의 목적으로 작성한 글이며 자세한 배포 방법은 이미 잘 쓰여진 글들이 많아 생략하였다.

프로젝트의 버전 명명 규칙에 따라 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/consoleApp Bundle 탐색기 메뉴를 통해 업로드 하고 새 버전 업로드 버튼을 누른다. 그 뒤 프로덕션 메뉴의 새 버전 만들기를 클릭한 뒤 파일 업로드 작업 및 내용 입력 과정을 끝내고 제출을 누르면 심사가 시작된다.

iOS는 Runner.xcarchive의 distribute app 기능을 사용하면 TestFlight에 자동으로 빌드 파일을 업로드하고 내부 테스트를 위해 별도의 파일도 추출(export)할 수 있다. 해당 과정을 거친 뒤, https://appstoreconnect.apple.comAppStore 메뉴에서 iOS 앱 + 버튼을 클릭하고 새버전을 양식에 맞춰 등록한 뒤 제출을 누루면 심사가 시작된다.

심사 접수 외 내부 테스트는 Firebase의 App Distribution 기능을 활용하여 각 OS별로 파일을 업로드 한 뒤, 지정된 테스터에게 메일을 발송하여 별도의 테스트를 실시하였다.

<!--21.08.27 Firebase AAB 업로드 이슈-->

Firebase에 AAB 업로드시 인증서가 다시 서명되어 카카오에 등록되지 않은 인증서로 소셜 로그인 요청이 실행되어 로그인이 되지 않은 문제가 발생하였고 이를 해결하기 위해 Firebase쪽에는 APK로 업로드하는 것으로 결정하였다.

flutter build apk <-- apk build command
profile
Turtle Never stop

0개의 댓글