[Android] 배포 자동화

kk_jang93·2024년 7월 17일
0
💡 기존 QA 및 테스트 방식

기존 방식

  • 테스트 진행시 구두 OR 슬랙으로 공지 및 전달사항 공유
  • 테스트 진행
    • USB 연결 후 빌드 → 테스트 진행 → 수정 → USB 연결 후 빌드 반복
    • PlayStore 내부 테스트를 이용하여 실제 배포와 동일하게 진행 → 스토어 반영 시간 (1~2시간) → 다운로드 → 테스트 진행
  • 테스트 완료 후 안드로이드 스튜디오 빌드 진행 → .apk / .aab 테스트폰에 각각 설치 후 최종 테스트
  • .aab(bundle) 파일을 가지고 스토어에 직접 수기로 심사 및 배포 진행
    • .aab 파일이 이전버전이 아닌지 확인 해야하며, 관리 차원에서 휴먼 에러가 발생할 수 있다.

1. 테스트앱을 제공하는데 너무 많은 시간이 걸린다.

개발이 완료되면 앱을 빌드한뒤 업로드해야합니다. 우선 PlayStore에 2차 인증을 거친 로그인을 해야하고 , 적당한 릴리즈노트와 함께 앱을 업로드하면, 앱파일을 첨부하는데 일정 시간을 소요한뒤에 앱을 제출할 수 있습니다. 업로드가 완료되면 바로 제공되는 것도 아닙니다. 약 30분의 '출시준비중' 단계를 대기한 후에 테스터들에게 앱이 제공됩니다.

2. 앱이 제공되고나면 QA엔지니어에게 직접 알려야한다.

  • 앱이 제공되고나면 QA엔지니어에겐 누가 알려줄까요?
    • 개발자가 직접 구두 OR 채널
  • 앱 업로드 후 30분~1시간 가량 '출시준비중' 상태를 뺑글뺑글 도는 것을 지켜보다가, 출시가 완료되면 QA엔지니어에게 알려주어야 합니다.

3. 테스터가 추가될때마다 일일이 추가해야하고, 오랫동안 기다려야한다.

신규 테스터를 추가하기 위해서는

(1) 플레이스토어 계정을 전달받아야하고

(2) 전달받은 계정에 수기로 권한을 등록해야합니다.

(3) 테스터가 정상적으로 권한을 획득했는지 확인해야하며,

(4) 권한을 획득한 테스터는 플레이스토어에서 '베타 참여하기' 버튼을 누른 뒤

(5) 약 1~2 시간을 많게는 3시간 이상을 기다려야 테스트앱을 다운받을 수 있습니다.

4. 이전 버전을 테스트할 수 없다. 한번에 1개의 버전만 테스트가 가능하다. (OS별 테스트시)

그나마 TestFlight는 '이전 빌드 보기'통해 과거 버전의 앱도 설치할 수 있어서, iOS는 이 방법으로 기능별 버전을 분리해서 QA를 진행할 수 있습니다. 그러나 플레이스토어는 가장 최신 버전의 앱만 제공할 수 있어 동시다발적으로 여러개의 QA를 태울땐 항상 난감합니다. 또 프로덕트에 앱이 출시되고나면, 자연스레 Beta에 등록된 앱이 이전 버전이 되면서 무효화 되기 때문에 Beta앱을 또 다시 빌드해서 등록해주어야합니다. 이는 배포역시 또 하나의 테스크로 변질되어진다.

💡 새로운 방식 도입 (R&D)

아래의 과정이 명령어 한줄이면 가능하다.

  1. Fastlane(Build)
  2. Firebase App Distribution(테스트 모드) / 슬랙 알림 (테스트모드)
  3. 테스트 진행
  4. Main PR (merge) 완료 → 심사 & 배포 진행 → 슬랙 알림 (릴리즈 모드)
  5. 완료

1. Fastlane 에서 명령어로 빌드를 진행한다.

  • 명령어와 Fastlane 환경 셋팅에 따라 .dev / .stage / .release 로 활용 가능하다.

2. 테스트 기기에서 전달 받은 초대 링크를 받는다 ( 최초 1회 )

  • 앱을 다운받아 테스트 진행 ( Firebase 에서 다운받는 형식 )
  • 슬랙을 통하여 알림 ( 이부분은 슬랙 환경 설정에 따라 릴리즈에서만 채널에 알림을 보내는것도 가능 )

3. 테스트 완료 후 Main PR 완료 되면 PlayStore로 심사 등록 진행

필수 등록 사항 리스트

  1. Google Cloude Platform 설정 ( Firebase와 PlayStore 앱 연결 을 위하여 셋팅 )
  2. Firebase App Distributuin 설정
    1. 테스터 설정 ( 이메일 초대 )
  3. Fastlane 환경 설정 셋팅
  4. JAVA Version Upgrade (1.7 → 17)

참고 기술 블로그

[Android] Fastlane으로 App Distribution & PlayStore에 배포하기

profile
앱개발을 사랑하는 개발자

0개의 댓글