-
Firebase App Distribution으로 앱 배포하기iOS 2024. 1. 11. 19:27
안녕하세요. 그린입니다 🍏
이번 포스팅에서는 Firebase App Distribution을 이용해 앱을 배포하는 방법에 대해 알아보겠습니다 🙋🏻
그럼 우선 Firebase App Distribution이 뭔지부터 알고 갈까요?
Firebase App Distribution?
Firebase App Distribution은 Firebase의 도구 중 하나로, 개발자가 앱의 사전 출시 버전을 테스터들에게 쉽게 배포할 수 있도록 도와주는 서비스입니다.
우리는 보통 App Store Connect의 Testflight를 이용해서 테스트 앱을 업로드했었는데요.
동일하게 테스트 앱에 대해 Firebase App Distribution를 사용한다고 보면 됩니다.
조금 다른점은 Testflight로 업로드된 빌드로 실제 출시를 태울 수 있었지만, Firebase App Distribution로 업로드된 빌드는 App Store Connect와는 별개이기에 Firebase App Distribution로는 보통 상용 빌드를 업로드하는것이 아닌 테스트를 위한 빌드만 업로드하여 주로 사용하는것이 특징입니다!
Firebase App Distribution를 그럼 왜쓰냐..?
제가 경험한 바로는 일단 Testflight와 비교했을때 여러 장단점들이 있겠지만, 아래와 같은 주요 장점을 느꼈습니다.
1️⃣ 업로드가 빠름 - Testflight에는 업로드를 하여도 나타나고 다운로드 하기까지 조금 시간이 걸리는데 Firebase App Distribution는 거의 즉시 테스트할 수 있도록 업로드될 정도로 상대적으로 빠릅니다.
2️⃣ 여러 플랫폼 지원 - iOS와 Android 플랫폼을 모두 지원하기에 하나의 Firebase App Distribution만을 통해 여러 플랫폼에서 테스팅을 동시에 진행할 수 있습니다.
이 외에는 단점도 있고 Testflight와 비슷한 장점인 테스터 그룹 관리라던지, 테스터들의 설치 상태, 세션, 충돌 등의 지표를 확인한다던지 등의 기능들도 있습니다.
우선 저는 위에서 언급한 1번 업로드가 정말 빠르다는점이 Testflight를 사용하면서 느꼈던 단점을 보완해줄 수 있어 좋았던것 같습니다!
그럼 한번 이 Firebase App Distribution를 사용해볼까요?
Firebase App Distribution를 사용해보자 🔥
우선 fastlane과 같은 자동 배포 툴을 사용하지 않고, 직접 Firebase Console에서 앱을 업로드하는 방법에 대해 알아볼께요 😃
가장 먼저 업로드할 프로젝트의 ipa 파일이 필요합니다.
ipa 파일은 프로젝트를 아카이빙했을때 생성되는 iOS App tore Package 파일입니다.
프로젝트에서 Product > Archive 메뉴를 탭해서 프로젝트를 아카이빙 해줍니다.
(빌드 디바이스는 Any iOS Device로 하셔야 에러가 나지 않습니다!)
그럼 요렇게 아카이빙이 성공해서 나올거에요.
Xcode에서 직접 앱을 빌드하고 업로드, 배포하고 계셨다면 익숙하실겁니다ㅎㅎ
여기서 우측, Distribute App 버튼을 클릭합니다.
여기서 Custom > Next를 눌러 넘어갑니다.
Development를 선택하고 Next를 누릅니다.
여기서도 App Thinning을 설정하려면 설정하고 없다면 지금처럼 None으로 두고 Next로 넘어갑니다.
그 다음으로 사이닝 방법을 선택하고 Next로 넘어갑니다.
그럼 이렇게 최종 창을 볼 수 있어요.
여기서 우측 하단 Export를 클릭해주고 해당 폴더를 익스포트하여 저장할 위치를 선택합니다.
그럼 이제 익스포트된 폴더를 열어보면 요렇게 ipa 파일이 생성되었습니다!
자 이렇게 테스트 빌드 업로드를 위한 ipa 파일을 추출했다면 이제 Firebase Console로 가서 업로드 해야겠죠?
자 여기 Firebase Console에서 App Distribution 도구를 이용합니다.
들어가서 가운데 떡하니 "새 버전 출시를 만들려면 IPA를 드래그 앤 드롭하세요."가 보이죠!?
저기 아까 우리 추출한 ipa 파일을 드래그 앤 드롭 해줍니다!
그럼 이제 해당 ipa 파일이 업로드가 완료되면 해당 빌드를 테스트해볼 즉, 수신받을 테스트 그룹 및 개별 테스터를 지정해야 합니다.
여기서 등록된 테스터나 그룹을 추가해주고 다음으로 넘어가줘요!
그리고 다음으로 넘어가서 적절한 출시 노트를 작성해주고 배포를 클릭하면 배포가 완료됩니다!
(해당 출시 노트 추가는 선택사항이에요ㅎㅎ)
자 이렇게하면 배포가 되었는데, 우리가 하나 빠뜨린게 있습니다 🥲
바로 테스터들을 어떻게 등록하고 테스터는 배포된 빌드를 어떻게 디바이스에서 설치해서 사용하는지에요!
우선 위와 같이 App Distribution에서 테스터 및 그룹 섹션으로 들어갑니다.
그리고 여기서 그룹을 추가할 수도 있고 테스터를 자유롭게 추가해줄 수도 있죠!
주의할 부분은, Firebase가 구글꺼기에... 등록하려는 테스터들도 구글 계정으로 등록해주셔야 합니다ㅎㅎ
다만 테스터에 대한 파이어베이스에서 제공하는 한도는 다음과 같아요.
✅ Firebase 프로젝트 하나에 최대 500명의 테스터 추가
✅ 앱 배포 그룹 하나에 최대 200명의 테스터 추가
물론 더 많은 테스터를 등록하려면 무료 대신 유료로 이용하여 한도를 상향 조정할 수 있긴합니다ㅎㅎ
또한, Firebase App Distribution API를 이용해 테스터를 추가하고 삭제할 수도 있다는데 관심있으신분은 한번 보셔도 좋을듯 해요ㅎㅎ
자 그럼 이렇게 추가가 되었고 빌드를 업로드하게 되면, 테스터에게 메일이 갑니다!
첫 테스터를 등록했기에 초대 수락을 위한 메일입니다ㅎㅎ
이제 Get started를 눌러서 초대 수락을 쭈욱 진행합니다.
그 다음으로, 초대 수락을 하게 되면 기기 등록을 통해 파이어베이스 프로필을 디바이스에 다운 받아야 합니다.
친절하게 스텝별로 알려주기에 프로필 다운로드를하고 설정 앱에서 파이어베이스 프로필을 설치합니다.
적용이 잘 되었는지 확인하려면 설정 > 일반 > VPN 및 기기 관리 > 구성 프로필 영역에서 확인할 수 있어요!
자 그러면 이제 테스터에서 할건 딱히 없습니다.
여기서도 중요한건 빌드 배포보다 테스터가 늦게 등록되면 이전것들은 보지 못하고 테스터가 등록된 시점 이후부터 해당 테스터들은 그 이후 배포되는 빌드들만 테스트할 수 있습니다!
아, 참고로 설치된 Firebase App Distribution 엑세스를 설치하여 이용하면 더 편하게 이제 사용 가능합니다ㅎㅎ
(사실 앱같이 보이지만 앱은 아니고 엄밀히는 웹 바로가기 링크라고 보는게 맞을것 같네요!)
자 그럼 이제 다시 넘어가서 관리자가 할 역할이 남아있습니다.
테스터가 등록한 기기 UUID를 Apple 개발자 사이트의 Device에 추가해줘야 합니다.
테스터가 위 절차까지 완료했다면, 관리자에게 아래와 같이 기기 등록이 되었다고 메일이 옵니다.
테스트 계정과 UUID 정보 등 우리가 실제 애플 개발자 사이트에 Device 등록에 필요한 정보가 오죠!
즉 요래 오거든요ㅎㅎ
그럼 쉽게 등록할 수 있어요.
기기 추가를 누르면 자동으로 디바이스 등록할 페이지를 열어줘요.
참고로 여기 사이트는 기기 추가로 이동할 수도 있고 아니면 직접 아래 경로로 이동하셔도 됩니다.
그럼 여기에 정보를 기입하면 끝입니다!
이제 프로비저닝 프로파일이 수정되었을거에요.
이 파일을 다운로드하고 Xcode에 추가합니다.
다시 이제 프로젝트를 빌드하고 아카이빙하여 동일하게 ipa 파일을 업로드하고 배포하면 추가된 테스터들이 기준 시점부터 각자 아이폰에 해당 테스트 앱을 다운받을 수 있게 됩니다 🔥
실제 앱이 배포되면 사용자에게는 이런 메일이 오게 됩니다.
그리고 또 설치된 App Distribution에서도 새로 빌드가 출시된걸 확인하고 쉽게 다운받을 수 있습니다.
짜잔 여기까지 Firebase App Distribution이였습니다ㅎㅎ
자 이렇게하면 Firebase App Distribution을 사용하여 앱을 배포하는것이 모두 완료됩니다 😉
사실 이번 포스팅에서 Firebase App Distribution을 알아보고 이어서 바로 fastlane을 통해서 Firebase App Distribution으로 앱을 배포하는 연동되는것까지 살펴보려했는데요!
생각보다 한 포스팅에 그림과 정보가 많아서 파트를 나눠보려고 합니다 🙋🏻
그래서 이미 정해진 다음 포스팅 주제!!
fastlane을 겸비해보겠습니다~
마무리
실제 저는 현업에서도 테스트 앱에 대해서는 이 Firebase App Distribution을 사용하고 있는데요.
빠르고 편하고 관리하기도 생각보다 수월하고 만족하고 있습니다ㅎㅎ
레퍼런스
'iOS' 카테고리의 다른 글
Meet the Screen Time API (WWDC21) (62) 2024.03.14 UIKit에서 ViewController간 데이터 전달 (95) 2024.01.22 VoiceOver를 통한 이벤트 전송 (65) 2024.01.04 Get started with privacy manifests (feat. WWDC 2023) (84) 2023.12.28 STT를 이용해 음성을 텍스트로 변환해보자 🗣️ (95) 2023.12.26