CI/CD 및 fastlane을 사용하여 QA 테스터에 Apple 앱을 배포할 때의 권장사항

이 문서에서는 Firebase App Distribution 및 fastlane을 사용하여 Apple 플랫폼 출시 전 테스트 워크플로를 지속 가능하게 만듭니다. Cloud Storage는 CI/CD 환경에서 반복 가능합니다 이 문서에서는 fastlane을 중점적으로 다루지만 Firebase 콘솔을 통해 사용할 수 있는 솔루션도 설명합니다. Firebase CLI 및 공개 Firebase App Distribution API를 통해 더 많은 유연성이 제공됩니다 최적의 환경을 위해 사전에 계획할 수 있도록 출시 및 테스터 한도도 설명합니다.

Android도 사용하는 경우 CI/CD를 사용하여 QA 테스터에 Android 앱을 배포할 때의 권장사항을 참고하세요.

시작하기 전에

이 문서의 권장사항을 구현하기 전에 각 앱Firebase 콘솔에서 App Distribution. 아직 사용 설정하지 않은 경우 App Distribution를 요청하면 404 오류가 발생합니다.

App Distribution를 사용 설정하려면 다음 단계를 따르세요.

  1. App Distribution 페이지 열기 (Firebase 콘솔에서 확인)

  2. iOS 앱을 선택합니다.

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

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

앱을 자동으로 빌드하고 테스터에게 출시하려면 CI/CD를 사용하는 경우 fastlane을 사용하는 것이 좋습니다. 또 다른 옵션은 Firebase CLI: 다양한 Firebase 제품에 액세스할 수 있습니다.

fastlane 사용

개방형 도구인 fastlane을 사용하여 CI/CD 파이프라인에 App Distribution를 통합합니다. iOS 및 Android 앱의 빌드 및 출시를 자동화하는 소스 도구입니다. 최신 출시 버전을 자동으로 빌드하고 테스터에게 배포함으로써 테스터가 항상 최신 버전의 테스트 앱을 사용할 수 있습니다.

App Distribution를 fastlane과 통합하는 방법을 알아보려면 다음을 참고하세요. fastlane을 사용하여 테스터에게 iOS 앱 배포. Codelab도 참고하세요. 에서 fastlane 통합 프로세스를 확인할 수 있습니다.

Firebase CLI 사용

App Distribution에서 제공하는 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 앱 배포

서비스 사용자 인증 정보를 사용하여 인증

App Distribution fastlane 플러그인 사용 또는 서비스 계정이 있는 Firebase CLI로, 애플리케이션 기본 사용자 인증 정보 CI를 관리하도록 도와줍니다 서비스 계정 는 사용자가 아닌 애플리케이션을 나타내는 Google 계정의 한 유형입니다. CI 시스템은 서비스 계정을 사용하여 App Distribution 워크로드를 실행할 수 있습니다. 자세한 내용은 서비스 계정으로 인증을 참조하세요.

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

출시 버전 한도에 유의

App Distribution는 앱당 최대 1,000개의 출시 버전을 지원합니다. 즉, 출시 버전 한도를 초과하면 App Distribution에서 자동으로 한도를 초과하는 경우 가장 오래된 출시 버전이 포함됩니다 출시 한도를 관리하는 방법을 알아보려면 다음을 참고하세요. 앱 출시 버전은 얼마 동안 제공되나요?

여러 출시 버전에 동일한 테스터 집합 추가

출시 버전에 많은 테스터를 추가하려면 다음을 사용하세요. App Distribution의 일괄 테스터 관리 기능입니다.

그룹을 사용하여 여러 출시 버전에 동일한 테스터를 추가하는 것이 좋습니다. 그룹은 액세스 제어 목록 역할을 합니다. 그룹에서 테스터를 삭제하면 해당 그룹에 배포된 모든 출시 버전에 액세스할 수 없게 됩니다. 자세한 내용은 그룹에서 테스터 추가 및 삭제를 참조하세요.

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

테스터 한도에 유의

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

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

추가 iOS 테스터 기기를 등록하는 데 도움이 되는 App Distribution의 기능 다음 정보를 제공하여 Apple Developer Portal에서 iOS 테스터 기기를 관리할 수 있습니다. 새 테스터 iOS 기기에 대한 정보 제공 자세한 내용은 CSV 파일에서 테스터를 가져옵니다. 프로그래매틱 방식으로 fastlane을 사용하여 새 기기를 내보낼 수 있습니다.

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

잠재적 테스터가 테스트에 직접 등록하도록 허용

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

초대 링크 사용 사례로는 회사 dogfood 프로그램, 대규모 QA팀이 있는 조직, 개별 클라이언트가 테스터 액세스를 제어할 수 있도록 하려는 개발자 그룹 등이 있습니다.

그룹용 초대 링크를 만드는 것이 좋습니다. 초대 링크를 사용하여 가입하는 모든 테스터는 이후 출시 버전에 자동으로 추가됩니다.

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

중요하게 생각하는 버전을 테스터가 테스트하는지 확인

새 버전이 업로드되면 테스터에게 이메일 알림이 전송됩니다. 이 알림을 보완하기 위해 버전 링크와 인앱 알림 같은 기능을 사용하여 테스터가 내게 중요한 특정 앱 버전을 테스트하도록 만들 수 있습니다.

  • 출시 링크: 테스터와 특정 버전을 공유하려는 경우 이 기능을 사용합니다. 출시 링크를 사용하는 방법은 다음을 참고하세요. Firebase 콘솔을 사용하여 테스터에게 iOS 앱 배포 이 링크는 Firebase에서도 제공됩니다. 및 fastlane 빌드 자동화 도구와 함께 사용할 수 있는 명령줄 (CLI) 도구

  • 인앱 알림: 이 알림을 사용하면 여러 개의 테스터가 최신 버전의 앱을 테스트하고 있습니다. 또한 Firebase App Distribution iOS SDK를 사용하면 앱의 새 빌드를 사용할 수 있게 되면 이 앱을 테스터에게 제공합니다. 자세히 알아보려면 인앱 알림을 추가하려면 테스터에게 새 빌드에 대해 알림을 참고하세요.

퇴사하는 테스터의 액세스 권한 자동 삭제

CI/CD 내부 테스트 흐름이 실행되면 퇴사한 직원이 더 이상 내부 빌드에 액세스할 수 없도록 해야 합니다. 빌드에 대한 테스터 액세스 권한을 관리하려면 App Distribution. 다음 옵션을 제공합니다.