최근 회사의 테스트 환경을 개선하고자 여러 가지 방법을 고민하던 중,
Firebase App Distribution을 도입해보게 되었다.
이 포스팅에서는 도입 배경부터 적용 방법, 그리고 활용 후기까지 정리해본다.


기존 방식

기존에는 하나의 패키지명 안에서
debug, release 로 빌드 타입을 구분하여 개발/운영 서버를 나눠 사용하고 있었다.

하지만 실제 업무에 투입되고 테스트를 진행하며 다음과 같은 불편함이 있었다 :

  • Firebase의 Analytics, Crashlytics 와 같은 기능들을 도입하며 테스트 데이터와 실제 운영 데이터가 섞이는 점
  • In-App Messaging 테스트를 위해 기획팀에게 따로 빌드를 전달하는 번거로움

➡ 결국, 개발/운영 패키지 분리가 필요하다고 판단했고, 이 시점에서 패키지명을 분리했다.


배포 방식에 대한 고민

패키지를 분리하고 나니,
이제 이 개발 서버용 앱을 어떻게 내부에 배포할 것인가에 대한 고민이 생겼다.

Google Play Console - 내부 테스트 트랙

처음에는 Google Play Console에서 개발용 앱을 따로 등록하고,
[내부 테스트] 기능을 활용해 배포하는 방법을 고려했다.

하지만 다음과 같은 이유로 적합하지 않다고 판단했다:

  • Android 는 위와 같이 해결이 된다고 해도 iOS 또한 따로 앱을 관리해야한다는게 부담이 됐다.
  • [내부 테스트]를 적용하게 되더라도 테스터 등록 → 수락 URL 접속 → 설치 페이지 재접속 등 이 과정을 개발용 어플에서도 한다는게 효율적이지 않다고 느꼈다.
  • 위를 보완하기 위해 따로 수락없이 진행할 수 있도록 기업 내에서만 어플을 공유하는 방식까지도 생각해봤지만, 소규모인 테스터 그룹을 생각했을 때 여기까지는 생각으로만 그쳤다.

그래서 선택한 Firebase App Distribution

이런 상황에서 발견한 게 바로 Firebase App Distribution이었다.

장점

  • 테스터를 이메일로 등록하거나, 초대 링크를 통해 스스로 등록 가능
  • 이전 버전도 다시 다운로드 가능
  • App Testing Agent 기능으로 Gemini와 함께 실행 시나리오 실행 가능
  • Android/iOS 모두 Firebase 콘솔 내에서 통합 관리
  • 별도로 서명 키를 따로 관리하지 않아도 간편하게 배포 가능
  • (참고) .aab 파일 업로드 시 Google Play Console 연동도 가능

기대 효과

  • 가끔씩 요청받던 개발서버 APK 직접 전달 과정을 생략
  • 기획팀이 In-App Messaging, FCM 등 기능을 직접 테스트 가능
  • 타 서비스에서 점주에게 미리 앱을 전달해야 하는 상황도 더 간편하게 대응 가능

적용 방법

Firebase 설정이 이미 되어 있다면,
패키지명에 따라 google-services.json만 잘 적용해주면 바로 사용할 수 있다.

참고로 나는 Android 기준 productFlavors를 사용해 패키지명을 분리했다.
iOS도 유사하게 적용 가능하며, 별도 프로비저닝 프로파일만 준비하면 됐다.


참고 이미지

Firebase는 하나의 프로젝트에 여러 패키지를 등록해 관리할 수 있다.

App Testing Agent는 아래와 같이 App Distribution 내부에서 활성화할 수 있다.

App Distribution을 통해 배포한 앱은 버전별로 Summary 확인이 가능하다.

초대받은 테스터는 아래와 같은 메일을 받으며,
모바일에서 열면 즉시 설치 가능한 페이지로 연결된다.


마무리

Firebase App Distribution은 테스트 앱 배포 과정을 간편하게 만들어주고,
협업 부서와의 테스트 효율도 높여준다.

테스트 환경을 운영 중이거나 APK 전달 방식에 고민이 있다면,
한 번쯤 도입을 고려해볼 만한 기능이다.

참고 문서

0개의 댓글