获取我们在 Firebase 峰会上发布的所有信息,了解 Firebase 可如何帮助您加快应用开发速度并满怀信心地运行应用。了解详情

CI/CD 및 fastlane을 사용하여 QA 테스터에게 Apple 앱을 배포하기 위한 모범 사례

이 문서에서는 Firebase 앱 배포 및 fastlane을 사용하여 CI/CD 환경에서 Apple 플랫폼 시험판 테스트 워크플로를 지속 가능하고 반복 가능하게 만드는 모범 사례를 소개합니다. 이 문서는 fastlane에 중점을 두지만 더 많은 유연성을 제공하기 위해 Firebase 콘솔, Firebase CLI 및 공개 Firebase 앱 배포 API를 통해 사용할 수 있는 솔루션에 대해서도 설명합니다. 또한 최적의 환경을 미리 계획할 수 있도록 릴리스 및 테스터 제한에 대해 설명합니다.

Android도 사용하는 경우 CI/CD를 사용하여 QA 테스터에게 Android 앱을 배포하기 위한 모범 사례를 참조하세요.

시작하기 전에

이 문서의 모범 사례를 구현하기 전에 각 앱에 대해 Firebase 콘솔에서 앱 배포를 활성화해야 합니다. 앱 배포를 활성화하지 않은 경우 404 오류가 발생합니다.

앱 배포를 활성화하려면 다음 단계를 따르십시오.

  1. Firebase 콘솔에서 앱 배포 페이지 를 엽니다.

  2. iOS 앱을 선택합니다.

  3. 시작하기 를 클릭합니다.

CI/CD를 사용하여 시험판 테스트 워크플로 자동화

테스터에게 앱 빌드 및 릴리스를 자동화하고 CI/CD를 사용하는 경우 fastlane 을 사용하는 것이 좋습니다. 또 다른 옵션은 다양한 Firebase 제품에 액세스할 수 있는 Firebase CLI를 사용하는 것입니다.

패스트레인 사용

iOS 및 Android 앱 빌드 및 릴리스를 자동화하는 오픈 소스 도구인 fastlane을 사용하여 앱 배포를 CI/CD 파이프라인에 통합합니다. 최신 릴리스를 빌드하고 테스터에게 자동으로 배포하면 테스터가 항상 앱의 최신 테스트 버전을 사용할 수 있습니다.

fastlane과 앱 배포를 통합하는 방법을 알아보려면 fastlane 을 사용하여 테스터에게 iOS 앱 배포 를 참조하세요. fastlane 통합 프로세스를 안내하는 Codelab도 참조하세요.

Firebase CLI 사용

앱 배포에서 제공하는 Firebase CLI 도구를 사용하여 빌드를 프로그래밍 방식으로 테스터에게 배포합니다. 빌드에 대한 테스터 및 릴리스 정보를 지정할 수 있습니다.

앱의 Firebase 앱 ID를 지정하고 선택적으로 출시 노트와 테스터의 이메일이 포함된 파일을 추가하여 최신 iOS 빌드 test.ipa 를 배포합니다.

firebase appdistribution:distribute test.ipa  \
    --app 1:1234567890:ios:0a1b2c3d4e5f67890  \
    --release-notes "Bug fixes and improvements" --testers-file testers.txt

Firebase CLI를 사용하여 빌드를 자동화하는 방법에 대해 자세히 알아보려면 Firebase CLI를 사용하여 테스터에게 iOS 앱 배포 를 참조하세요.

서비스 자격 증명을 사용하여 인증

애플리케이션 기본 자격 증명 을 활용하고 CI를 관리하는 데 도움이 되는 서비스 계정과 함께 앱 배포 fastlane 플러그인 또는 Firebase CLI를 사용하세요. 서비스 계정 은 사용자가 아닌 애플리케이션을 나타내는 Google 계정 유형입니다. CI 시스템은 서비스 계정을 사용하여 앱 배포 워크로드를 실행할 수 있습니다. 자세히 알아보려면 서비스 계정으로 인증을 참조하세요.

워크로드 아이덴티티 제휴를 사용하는 경우 서비스 계정 키 대신 자격 증명 구성 파일 을 생성하고 사용할 수 있습니다.

릴리스 제한을 염두에 두십시오.

앱 배포는 앱당 최대 1,000개의 릴리스를 지원합니다. 즉, 릴리스 제한을 초과하면 앱 배포가 제한을 초과하는 가장 오래된 릴리스를 자동으로 삭제합니다. 릴리스 제한을 관리하는 방법을 알아보려면 앱 릴리스는 얼마나 오래 사용할 수 있나요? 를 참조하세요.

여러 릴리스에 동일한 테스터 세트 추가

릴리스에 많은 수의 테스터를 추가하려면 앱 배포의 대량 테스터 관리 기능을 사용하세요.

그룹을 사용하여 동일한 테스터를 여러 릴리스에 추가하는 것이 좋습니다. 그룹 은 액세스 제어 목록 역할을 합니다. 그룹에서 테스터를 제거하면 해당 그룹에 배포된 모든 릴리스에 대한 액세스 권한을 잃게 됩니다. 자세한 내용 은 그룹에서 테스터 추가 및 제거 를 참조하십시오.

관리할 테스터가 많은 경우 Firebase 콘솔을 사용하여 테스터를 일괄 추가하고 삭제할 수 있습니다. 테스터 추가 및 제거를 자동화하려면 Firebase CLI , fastlane 또는 공개 Firebase App Distribution API 를 사용 하십시오.

테스터 한도를 염두에 두십시오.

앱 배포는 Firebase 프로젝트 또는 앱 배포 그룹에 추가할 수 있는 테스터 수를 제한합니다. 이 한도를 초과하면 추가 테스터에게 앱을 배포할 수 없습니다. 테스터 제한에 대해 자세히 알아보려면 내 앱에 테스터를 추가하는 데 제한이 있나요? 를 참조하세요.

새로운 iOS 테스터 기기 관리 및 자동 추가

추가 iOS 테스터 장치를 등록하는 데 도움이 되도록 앱 배포는 이메일 또는 CSV 파일을 통해 새 테스터 iOS 장치에 대해 알려줌으로써 Apple 개발자 포털에서 iOS 테스터 장치를 관리하는 데 도움이 됩니다. 자세한 내용 은 CSV 파일에서 테스터 가져오기 를 참조하십시오. fastlane 을 사용하여 프로그래밍 방식으로 새 장치를 내보낼 수도 있습니다.

자동으로 UDID를 풀다운하고 Apple 개발자 콘솔에 추가한 다음 앱을 다시 빌드하고 배포하는 fastlane 작업을 설정하는 방법을 알아보려면 앱 배포 및 fastlane을 사용하여 시험판 iOS 빌드를 더 빠르게 배포를 참조하세요.

잠재적인 테스터가 테스트를 위해 자체 등록할 수 있도록 합니다.

더 많은 테스터에게 앱을 더 쉽게 배포하려면 초대 링크를 사용하는 것이 좋습니다. 초대 링크 는 테스터가 자신의 이메일 주소를 입력하여 앱 테스트에 등록할 수 있는 고유한 URL입니다. 사용자가 앱 테스터 목록에 자신을 추가할 수 있도록 하면 내부 테스트 기반을 원활하게 늘릴 수 있습니다.

초대 링크 사용 사례에는 회사 dogfood 프로그램, 대규모 QA 팀이 있는 조직, 개별 고객이 테스터 액세스를 제어할 수 있기를 원하는 개발자 그룹이 포함됩니다.

그룹에 대한 초대 링크를 만드는 것이 좋습니다. 초대 링크를 사용하여 등록한 모든 테스터는 후속 릴리스에 자동으로 추가됩니다.

자세한 내용은 초대 링크 만들기그룹에서 테스터 추가 및 제거 를 참조하십시오.

테스터가 관심 있는 버전을 테스트하고 있는지 확인하십시오.

새 버전이 업로드되면 테스터에게 이메일로 알려줍니다. 이 알림을 보완하기 위해 다음 기능(릴리스 링크 및 인앱 알림)을 사용하여 테스터가 관심 있는 특정 앱 버전을 테스트하고 있는지 확인할 수 있습니다.

  • 릴리스 링크: 테스터와 특정 버전을 공유하려는 경우 이 기능을 사용합니다. 릴리스 링크를 사용하는 방법을 알아보려면 Firebase 콘솔을 사용하여 테스터에게 iOS 앱 배포 를 참조하세요. 이러한 링크는 빌드 자동화 도구와 함께 사용할 수 있도록 Firebase 및 CLI( fastlane 명령줄) 도구에서도 사용할 수 있습니다.

  • 인앱 알림: 테스터가 앱의 최신 버전을 테스트하고 있는지 확인하려는 경우 이 알림을 사용하세요. Firebase 앱 배포 iOS SDK를 통합하면 앱의 새 빌드를 사용할 수 있을 때 앱 내에서 직접 테스터에게 알림을 표시할 수 있습니다. 인앱 알림을 추가하는 방법을 알아보려면 테스터에게 새 빌드에 대해 알림 을 참조하십시오.

퇴사하는 테스터의 액세스 권한을 자동으로 제거합니다.

CI/CD 내부 테스트 흐름이 시작되고 실행되면 회사를 떠나는 사람들이 더 이상 내부 빌드에 액세스할 수 없도록 해야 합니다. 빌드에 대한 테스터 액세스를 관리하는 데 도움이 되도록 앱 배포는 다음 옵션을 제공합니다.

  • fastlane: Fastfile 파일을 사용하거나 fastlane 작업을 직접 실행합니다. fastlane을 사용하여 테스터를 제거하는 방법에 대해 자세히 알아보려면 fastlane을 사용 하여 테스터에게 iOS 앱 배포 를 참조하세요.

  • 공개 Firebase 앱 배포 API : testers.batchRemove 엔드포인트를 사용합니다.