TestFlight: iOS 베타 테스트 및 빌드 작업

저자: IT Sectr 게시일: 2026-04-11 읽는 시간: 9 분

TestFlight — iOS, iPadOS, watchOS 및 tvOS 애플리케이션의 베타 테스트를 위한 Apple의 공식 서비스입니다. TestFlight를 통해 개발자는 최대 10,000명의 외부 테스터에게 사전 출시 빌드를 배포하고, App Store에 게시하지 않고도 피드백과 충돌 보고서를 수집합니다. Apple Developer Documentation, 2025에 따르면, App Store에 등록된 앱의 80% 이상이 출시 준비 단계에서 TestFlight를 사용합니다.

핵심 요점

  • TestFlight — 테스터에게 앱의 베타 버전을 배포하는 Apple의 플랫폼
  • 최대 10,000명의 외부 테스터와 한 팀의 최대 100명의 내부 구성원
  • Xcode와의 통합 및 App Store Connect를 통해 IDE에서 직접 빌드 업로드 가능
  • 자동 수집 테스터의 충돌 로그, 피드백 및 진단 데이터
  • TestFlight 없이 App Store 외부에서 iOS 빌드를 배포하려면 Enterprise 인증서 또는 탈옥이 필요

TestFlight란

TestFlight는 App Store에 게시하지 않고 테스트용 iOS 애플리케이션을 배포하는 합법적이고 유일한 공식 방법입니다. 이 서비스는 2014년 Apple이 동명의 회사를 인수한 후 시작되었습니다. TestFlight 이전에는 개발자가 시즌당 100대 기기 제한이 있는 Ad Hoc 배포를 사용했지만, TestFlight는 이 제한을 없애고 프로세스를 몇 번의 클릭으로 간소화했습니다.

TestFlight가 필요한 이유

iOS는 엄격한 보안 정책을 가지고 있습니다. 애플리케이션은 App Store를 통하거나 특수 인증서를 사용해서만 기기에 설치할 수 있습니다. TestFlight는 개발자와 테스터 사이의 프록시 역할을 하여 베타 테스트 문제를 해결합니다. Apple이 빌드를 기본 요구 사항에 대해 확인한 후, 테스터는 App Store의 TestFlight 앱을 통해 애플리케이션을 받으므로 서명되지 않은 파일을 신뢰할 필요가 없습니다.

TestFlight vs Ad Hoc vs Enterprise

App Store 외부에서 iOS 애플리케이션을 배포하는 세 가지 방법이 있습니다. Ad Hoc(100대 기기 제한, 각 기기의 UDID 필요), Enterprise(무제한 사내 배포, 연간 $299의 Apple Enterprise 인증서 필요), TestFlight(최대 10,000명 테스터, 무료, UDID 수집 불필요). TestFlight는 베타 테스트에 최적의 선택이며, Ad Hoc은 기기별 테스트에, Enterprise는 기업용 애플리케이션에 적합합니다.

TestFlight 작동 방식

TestFlight를 통해 빌드를 게시하는 프로세스는 Xcode에서 빌드하기, Archive Organizer를 통해 App Store Connect에 업로드, Apple 처리, 테스터 초대, TestFlight 앱을 통해 앱 설치의 다섯 단계로 구성됩니다. 각 단계는 프로젝트 복잡성에 따라 몇 분에서 한 시간까지 걸립니다.

Apple의 빌드 요구 사항

빌드는 배포 인증서와 유효한 프로비저닝 프로필로 생성해야 합니다. Apple은 인증서 유효성, 번들 식별자 일치, 비공개 API 부재, 올바른 아이콘(1024×1024) 및 App Store 아이콘 존재 여부를 확인합니다. 빌드가 검사를 통과하지 못하면 TestFlight에 문제 설명과 함께 오류가 표시됩니다.

빌드 처리

업로드 후, 빌드는 Apple의 자동화된 검증(바이너리 코드 정적 분석, 디지털 서명 확인, 비공개 API 사용 및 맬웨어 스캔)을 거칩니다. 처리에는 첫 번째 빌드의 경우 15분에서 2시간, 이후 빌드의 경우 일반적으로 150분이 소요됩니다. 처리 상태는 App Store Connect의 Activity에 표시됩니다.

swift
// Swift AppDelegate에서 TestFlight 설정
import UIKit

@main
class AppDelegate: UIResponder, UIApplicationDelegate {
    func application(
        _ application: UIApplication,
        didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?
    ) -> Bool {
        // 확인: TestFlight를 통해 앱이 설치되었는지 여부
        if Bundle.main.appStoreReceiptURL?.lastPathComponent
            == "sandboxReceipt" {
            print("TestFlight를 통한 베타 버전")
        }
        return true
    }
}

내부 및 외부 테스터

TestFlight는 테스터를 내부 테스터(Internal Testers)와 외부 테스터(External Testers) 두 그룹으로 나눕니다. 차이점은 참가자 수, 빌드에 대한 액세스 및 Apple 검토 필요성에 있습니다. 올바른 그룹을 선택하면 테스트 프로세스가 빨라지고 App Store 정책을 준수할 수 있습니다.

내부 테스터 (Internal)

Apple Developer Program 팀의 최대 100명까지 참여 가능합니다. 내부 테스터를 초대하려면 App Store Connect에서 Apple ID를 추가하기만 하면 즉시 모든 빌드에 액세스할 수 있습니다. Apple 검토가 필요하지 않습니다. 일일 스모크 테스트 및 초기 단계 기능 검증에 이상적입니다.

외부 테스터 (External)

개발 팀에 속하지 않은 최대 10,000명의 참가자. 외부 테스터용 첫 번째 빌드는 기본 Apple 검토(보통 12일)를 거칩니다. 핵심 기능에 영향을 주지 않는 변경 사항이 포함된 후속 빌드는 재검토 없이 통과할 수 있습니다. 외부 테스터는 이메일 또는 공개 링크를 통해 초대됩니다.

매개변수내부 테스터외부 테스터
최대 수10010,000
Apple 검토필요 없음첫 번째 빌드 — 필수
초대팀의 Apple ID이메일 / 공개 링크
빌드 유효 기간90일90일
빌드 액세스모두 한 번에활성 그룹만

TestFlight에 빌드 업로드 방법

TestFlight에 빌드를 업로드하는 방법은 Xcode, Application Loader 또는 xcrun을 사용한 명령줄을 통해 이루어집니다. 가장 일반적인 방법은 프로젝트 아카이브를 만든 후 Xcode Archive Organizer를 통한 방법입니다. 대체 방법은 CI/CD 파이프라인을 위한 Fastlane을 통한 자동화입니다.

Xcode를 통한 수동 업로드

아카이브를 만들고(Product → Archive), Organizer를 열고, 아카이브를 선택한 후 Distribute App을 클릭합니다. 배포 방법으로 TestFlight를 선택하고, 인증서와 프로비저닝 프로필을 지정합니다. Xcode가 App Store Connect에 빌드를 업로드하며, 처리 후에 나타납니다. 전체 과정은 첫 번째 업로드에 1020분 정도 소요됩니다.

Fastlane을 통한 자동화

Fastlane은 TestFlight에 빌드 업로드를 자동화하는 가장 인기 있는 도구입니다. fastlane pilot 명령은 Xcode를 열지 않고 빌드를 업로드하고 테스터를 관리합니다. Fastlane을 CI/CD 서버와 통합하면 모든 테스트 통과 후 TestFlight에 자동으로 빌드를 게시할 수 있습니다.

ruby
# Fastfile — TestFlight에 빌드 업로드
default_platform(:ios)

lane :beta do
    # match를 통한 인증서 획득
    match(type: "appstore")

    # 빌드 및 서명
    build_app(
        scheme: "MyApp",
        export_method: "app-store",
        workspace: "MyApp.xcworkspace"
    )

    # TestFlight에 업로드
    pilot(
        skip_waiting_for_build: true,
        distribute_external: false,
        notify_external_testers: false
    )
end

Fastlane pilot은 자동으로 IPA를 App Store Connect에 업로드하고, 처리를 기다린 후(skip_waiting_for_build = false인 경우) 선택한 테스터 그룹에 빌드를 할당합니다. distribute_external: true 명령은 처리 후 즉시 외부 테스터에게 빌드를 보냅니다.

명령줄을 통한 업로드

Fastlane 없이도 xcrun을 사용할 수 있습니다: xcrun altool --upload-app --file path/to/app.ipa --username YOUR_APPLE_ID --password @keychain:AC_PASSWORD. altool은 CI 환경을 위해 Apple에서 지원하며 그래픽 인터페이스가 필요하지 않습니다. 암호는 키체인 또는 앱별 암호를 통해 전달됩니다. 일반 텍스트 암호는 사용하지 마십시오.

TestFlight에서 피드백 수집 및 진단

TestFlight는 내장 피드백 양식, 자동 충돌 로그 수집, 사용량 메트릭 및 스크린샷 등 여러 피드백 메커니즘을 제공합니다. 팀은 베타 테스트용 타사 SDK를 통합하지 않고도 App Store Connect에서 모든 데이터를 얻을 수 있습니다.

내장 피드백 양식

테스터가 TestFlight 앱을 열고, 빌드를 선택한 후 Send Feedback을 클릭합니다. 양식은 텍스트 피드백 전송, 스크린샷 첨부 및 심각도 지정을 허용합니다. 모든 피드백은 App Store Connect의 TestFlight → Feedback에 수집됩니다. 개발자가 피드백에 답변하면 테스터가 TestFlight 앱에서 알림을 받습니다.

충돌 로그 및 진단

앱이 충돌하면 TestFlight가 자동으로 충돌 보고서(호출 스택, OS 버전, 기기 모델, 충돌 시간)를 수집합니다. 충돌 로그는 Xcode Organizer(Crashes) 및 App Store Connect(TestFlight → Crashes)에서 확인할 수 있습니다. 기호화된 충돌 로그를 얻으려면 빌드와 함께 또는 Xcode를 통해 별도로 dSYM 파일을 업로드해야 합니다.

사용량 모니터링

TestFlight는 설치 수, 활성 테스터, 세션 및 충돌 수와 같은 메트릭을 표시합니다. 분석은 매일 업데이트되며 테스터 참여도를 평가하는 데 도움이 됩니다. 일주일 동안 테스터가 앱을 열지 않은 경우 그룹과의 커뮤니케이션이나 빌드 품질을 재고해야 합니다.

TestFlight에서 App Store 출시까지

TestFlight는 App Store 출시 프로세스의 필수적인 부분입니다. TestFlight를 통해 베타 테스트를 통과한 동일한 빌드를 다시 빌드하지 않고 Apple 검토에 제출할 수 있습니다 — App Store Connect에서 버튼만 클릭하면 됩니다. 이를 통해 프로덕션 빌드가 테스트된 빌드와 다른 위험이 제거됩니다.

App Review에 제출

App Store Connect에서 테스트를 통과한 빌드를 선택하고 Submit for Review를 클릭합니다. Apple은 TestFlight와 동일한 빌드를 사용하므로 재업로드가 필요하지 않습니다. 검토 시간은 일반적으로 13일입니다. 빌드가 거부되면 문제를 수정하고, TestFlight에 새 빌드를 업로드한 후 프로세스를 반복합니다.

출시 전 최종 빌드

검토에 제출하기 전에 TestFlight의 최종 테스트 라운드 후 2448시간을 기다리는 것이 좋습니다. 이 시간은 테스터가 자동 테스트를 통과할 수 있는 중요한 버그를 발견할 수 있게 해줍니다. TestFlight의 릴리스 후보 (RC) 빌드는 성숙한 iOS 팀의 표준 관행입니다.

출시 후 조치

App Store에서 릴리스 버전이 출시되면 TestFlight 빌드는 새 설치에 자동으로 사용할 수 없게 됩니다. 이미 베타 버전을 설치한 테스터는 릴리스 출시 후 30일 동안 계속 사용할 수 있으며, 그 이후에는 앱이 열리지 않습니다. 테스터가 App Store 버전으로 업데이트했는지 확인하십시오.

자주 묻는 질문

TestFlight는 개발자에게 얼마인가요?

TestFlight는 Apple Developer Program($99/년) 회원에게 완전히 무료입니다. 빌드 및 테스터 수에 관계없이 서비스 사용에 대한 추가 요금이 부과되지 않습니다. Apple 개발자 구독료만 지불하면 됩니다 — TestFlight는 기본적으로 포함되어 있습니다.

TestFlight를 Android 앱에 사용할 수 있나요?

아니요, TestFlight는 Apple 생태계의 전용 서비스입니다. Android에는 유사한 도구인 Google Play Console의 Internal Testing 및 Open Testing 트랙이 있습니다. Android에서 베타 버전을 게시하려면 Firebase App Distribution 및 DeployGate도 사용됩니다.

TestFlight에서 빌드 처리 시간은?

업로드 후 첫 번째 빌드의 처리에는 15분에서 2시간이 소요됩니다. 이후 빌드는 더 빠르게 처리됩니다 — 일반적으로 150분입니다. 처리 시간은 Apple 서버 부하에 따라 다릅니다. App Store Connect의 Activity 섹션에서 상태를 추적할 수 있습니다.

TestFlight의 빌드 수에 제한이 있나요?

각 빌드는 업로드 시점부터 90일 동안 테스트에 사용할 수 있습니다. 빌드 수는 제한이 없지만, 동시에 활성화할 수 있는 빌드는 최대 30개입니다. 오래된 빌드는 만료 또는 한도 도달 시 자동으로 제거됩니다.

Apple ID 없이 테스터를 초대하는 방법?

TestFlight를 통한 테스트 참여에는 Apple ID가 필요합니다. 외부 테스터는 이메일 링크를 통해 초대됩니다 — 링크를 처음 열면 Apple ID가 없는 경우 생성하라는 메시지가 표시됩니다. 소셜 미디어나 블로그에 배포할 수 있는 공개 링크도 제공됩니다.

요약

  • TestFlight — Apple Developer Program 회원을 위한 무료 Apple 공식 베타 테스트 서비스
  • 최대 10,000명의 외부 및 100명의 내부 테스터, UDID 수집 또는 수동 기기 구성 불필요
  • 자동 수집 TestFlight 앱을 통한 충돌 로그, 피드백 및 진단 데이터
  • 빌드 업로드 Xcode, Application Loader, xcrun altool 및 Fastlane을 통해 가능
  • 동일한 빌드를 TestFlight에서 App Store 검토에 제출 — 테스트 버전과 출시 버전 간 차이 없음
  • 90일의 빌드 테스트 가능 기간, 동시에 최대 30개의 활성 빌드
  • 권장 사항: 각 빌드를 정기적으로 테스트하기 위해 Fastlane 및 CI/CD를 통한 TestFlight 자동 빌드 업로드 설정

턴키 방식의 모바일 애플리케이션을 개발해 드립니다

IT Sectr는 2017년부터 스타트업과 기업을 위한 iOS 및 Android 애플리케이션을 만듭니다. 저희가 상담해 드리고 최적의 솔루션을 제안하겠습니다.

프로젝트 논의

더 읽어보기