# TestFlight 사용법: 아이폰 앱 출시 전 테스트하기

> 내부·외부 테스터, 베타 심사, 공개 링크, 90일 빌드 유효기간까지. TestFlight를 쉽게 정리하고 Apple 제출 전 점검 목록도 담았어요.

원본 페이지: [TestFlight 사용법: 아이폰 앱 출시 전 테스트하기](https://devoria.fr/ko/blog/testflight-iphone-app-beta-testing)
작성자: [Mehdi Azizi](https://devoria.fr/ko/mehdi-azizi)
게시일: 2026-09-23
최종 내용 수정: 2026-10-09


## TestFlight란 무엇이고 어디에 쓰나요?

TestFlight는 App Store에 출시하기 전에 앱을 실제 아이폰에 설치해 볼 수 있게 해 주는 Apple 서비스예요. App Store Connect에 빌드를 올리고 테스터를 초대하면, 테스터는 App Store에서 무료로 받을 수 있는 TestFlight 앱으로 설치해요. 테스터는 두 종류가 있어요. 내부 테스터는 팀원 최대 100명까지이고 Apple 심사가 없어요. 외부 테스터는 최대 10,000명까지 이메일이나 공개 링크로 초대할 수 있고, 첫 빌드에 대해 베타 심사를 거쳐야 해요. 각 빌드는 90일 동안 테스트할 수 있어요.

| 기준            | 내부 테스터             | 외부 테스터           |
| --------------- | ----------------------- | --------------------- |
| 최대 인원       | 100                     | 10,000                |
| 내 계정 접근    | 있음, 역할 부여         | 없음                  |
| 초대 방식       | 내부 그룹에 추가        | 이메일 또는 공개 링크 |
| Apple 베타 심사 | 없음                    | 첫 빌드에 대해        |
| 대상            | 나, 동업자, 가까운 지인 | 친구, 초기 사용자     |

TestFlight를 쓰려면 [유료 Apple Developer 계정](https://devoria.fr/ko/blog/apple-developer-account-price-free-vs-99)이 필요해요. [무료 계정으로는 이 서비스를 쓸 수 없거든요](https://developer.apple.com/support/compare-memberships/). 이 가이드는 모두 표준 프로그램 계정이 있다는 전제로 설명해요. Apple Enterprise 프로그램으로는 TestFlight를 쓸 수 없어요.

제 앱들은 EAS Submit으로 올린 빌드를 전부 TestFlight와 제 아이폰에서 확인한 뒤에 심사에 제출해요. 개발 중에는 보이지 않던 문제를 여기서 찾게 돼요.

## TestFlight에 빌드 올리기

빌드는 컴파일하고 서명한 앱 버전이에요. 서명이 잘못되면 Apple이 업로드 단계에서 ITMS-90034로 거부해요. TestFlight에 빌드가 나타나게 하려면 App Store Connect로 보내야 해요. Expo에서는 `eas build --platform ios` 다음에 `eas submit --platform ios`를 실행하면 되고, ITMS-90725를 피하려면 충분히 최신인 빌드 이미지를 써야 해요. [Expo 문서에 따르면](https://docs.expo.dev/submit/ios/) Apple의 처리가 끝나면 빌드가 TestFlight에 나타나는데, 보통 10~15분 걸려요. 이 모든 과정은 PC에서도 할 수 있어요. 전체 흐름은 [Mac 없이 iOS 앱 출시하기](https://devoria.fr/ko/blog/publish-ios-app-without-mac-expo-eas) 가이드에 자세히 정리했어요.

처음에 자주 막히는 부분이 두 가지 있어요.

- **빌드 번호는 업로드할 때마다 바뀌어야 해요.** Apple은 같은 버전에 같은 번호의 빌드 두 개를 허용하지 않아요. EAS에서 자동 증가를 켜 두면 더 신경 쓸 필요가 없어요.
- **암호화 관련 질문.** 암호화 사용 여부 질문에 답하기 전까지 빌드는 수출 규정 정보 누락(Missing Compliance) 상태로 멈춰 있어요. App Store Connect에서 매번 답해도 되고, 앱 설정에 한 번 선언해 둬도 돼요.

## 내부 테스터: 기다림 없이 팀과 함께

내부 테스터는 내 App Store Connect 계정에 역할을 부여받은 사용자예요. [Apple은 최대 100명까지 허용하고](https://developer.apple.com/help/app-store-connect/test-a-beta-version/testflight-overview), 각자 [여러 기기에 앱을 설치할 수 있어요](https://developer.apple.com/testflight/). 최대 30대까지요.

가장 큰 장점은 베타 심사가 없다는 거예요. ITMS-90717 같은 자동 오류 없이 빌드 처리가 끝나면, 내부 그룹에 추가하는 즉시 쓸 수 있어요. 나 자신, 그리고 계정 접근 권한을 준 동업자나 지인에게 딱 맞는 그룹이에요.

한계도 있어요. 내 App Store Connect 계정의 사용자로 추가해야 해서, 모르는 사람에게는 맞지 않아요.

## 외부 테스터와 베타 심사

외부 테스터는 내 계정에 접근할 필요가 전혀 없어요. [최대 10,000명까지](https://developer.apple.com/help/app-store-connect/test-a-beta-version/testflight-overview) 이메일이나 공개 링크로 초대할 수 있어요. 친구, 초기 사용자, 커뮤니티에 맞는 그룹이에요.

대신 Apple이 빌드를 열어 주기 전에 확인해요. [어떤 버전의 첫 빌드를 외부 그룹에 추가하면](https://developer.apple.com/help/app-store-connect/test-a-beta-version/invite-external-testers) 베타 심사에 들어가요. 같은 버전의 이후 빌드는 꼭 전체 심사를 받지 않아도 돼요.

제출 전에 App Store Connect가 테스트 정보를 요구해요.

- **베타 설명**: 테스터가 무엇을 봐야 하는지 알려 줘요.
- **피드백 받을 이메일 주소**
- **연락처 정보**: Apple이 나에게 연락할 수 있도록요.

> 베타 심사는 App Store 심사가 아니에요. TestFlight에서 승인된 빌드도 출시 단계에서 거절될 수 있어요.

베타 심사는 빌드가 규칙을 지키는지 확인하지만, 최종 심사는 스토어 페이지, 구독, 법적 고지, 전체 사용 경험까지 봐요. [Apple이 앱을 거절하는 이유](https://devoria.fr/ko/blog/app-store-rejection-reasons-real-cases)에 정리한 대표적인 거절 사유를 염두에 두세요.

## 공개 링크로 테스터 초대하기

공개 링크는 아직 모르는 사람들에게 앱을 테스트받는 가장 간단한 방법이에요. [Apple의 절차](https://developer.apple.com/help/app-store-connect/test-a-beta-version/invite-external-testers)를 영어 인터페이스 라벨과 함께 정리하면 이래요.

1. App Store Connect에서 앱을 열고 **TestFlight** 탭으로 가요.
2. **External Testing** 아래에서 외부 그룹을 선택해요.
3. **Create Public Link**를 클릭해요.
4. 누구나 쓸 수 있게 하려면 **Open to Anyone**, 특정 기기와 iOS 버전으로 제한하려면 **Filter by Criteria**를 선택해요.
5. 원하면 **Set Limit**으로 테스터 수 제한을 정해요.

그다음 링크를 메시지, SNS, 이메일 등 원하는 곳에 공유하면 돼요. 상대방은 TestFlight 앱을 설치하고 링크를 열어 초대를 수락해요.

널리 퍼뜨리기 전에 알아 둘 두 가지가 있어요.

- **제한을 정해 두세요.** 링크가 예상보다 많이 퍼져도 테스터 수를 통제할 수 있어요.
- **공개 링크 테스터는 익명이에요.** App Store Connect에는 설치 날짜, 세션, 크래시만 표시돼요. 누가 무엇을 테스트했는지 알고 싶다면 이메일로 초대하는 게 나아요.

## TestFlight 빌드는 얼마나 유지되나요?

[빌드는 90일 동안 테스터에게 제공돼요](https://developer.apple.com/help/app-store-connect/test-a-beta-version/testflight-overview). 그 이후에는 만료되어 테스터가 더 이상 열 수 없어요. 베타가 더 길어진다면 만료 전에 새 빌드를 올리면 돼요.

실제로는 훨씬 자주 새 빌드를 올리게 될 거예요. 중요한 수정이 있을 때마다요. 그룹에 추가된 새 빌드는 테스터에게 제공되고, 테스터는 TestFlight 앱에서 받아요.

## 테스터 피드백 받기

TestFlight에는 피드백 기능이 있어요. [테스터가 앱에서 스크린샷을 찍고, 주석을 달아 보낼 수 있어요](https://developer.apple.com/testflight/). 앱이 크래시되면 크래시 리포트를 받고, 테스터가 상황 설명을 덧붙일 수도 있어요. 모두 App Store Connect에서 확인할 수 있어요.

유용하지만 특정 크래시를 이해하기엔 부족해요. 저는 앱에 Sentry를 넣어서 문제가 된 코드 줄까지 오류를 받아 보고, PostHog로 사용자가 어디서 이탈하는지 봐요. 둘 다 TestFlight 빌드에서도 프로덕션과 똑같이 작동해요.

## TestFlight에서 구독 테스트하기

앱에서 구독을 판매한다면, 실제로 잘 작동하는지 확인하는 곳이 TestFlight예요. [TestFlight 빌드에서 한 구매는 Apple의 테스트 환경을 거쳐요](https://developer.apple.com/help/app-store-connect/test-a-beta-version/testing-subscriptions-and-in-app-purchases-in-testflight/). 그래서 테스터에게 요금이 청구되지 않아요. 갱신은 빨라져요. 실제 기간과 상관없이 모든 구독이 하루에 한 번, 일주일 동안 최대 6번 갱신돼요.

최소한 표시되는 가격이 맞는지, 구매하면 앱 기능이 제대로 열리는지, 재설치 후 복원 버튼으로 구독을 되찾는지 확인하세요. 저는 앱 구독 관리에 RevenueCat을 써요. App Store Connect 상품 설정부터 페이월까지 전체 구성은 [iOS 인앱 구독](https://devoria.fr/ko/expertise/ios-in-app-subscription) 페이지에 정리했어요.

## Apple에 제출하기 전에 테스트할 것

제가 심사 제출 전마다 적용하는 목록이에요. 항목 하나하나가 피할 수 있는 거절 사유나 크래시에 해당해요.

### 첫 실행

- 앱을 삭제하고 TestFlight에서 다시 설치한 뒤 열어 보세요. 심사자가 바로 그렇게 해요.
- 온보딩을 건너뛰지 말고 끝까지 진행해 보세요.
- 모든 권한(알림, 카메라, 위치)을 거부하고 앱이 계속 작동하는지 확인하세요.

### 결제

- 페이월에 가격, 기간, 이용약관과 개인정보 처리방침 링크가 표시돼요.
- 구매가 되고, 복원도 돼요.
- 설정한 모든 상품이 심사자에게 보여요. [가이드라인 2.1](https://developer.apple.com/app-store/review/guidelines/)은 인앱 구매가 완전하고, 보이고, 작동할 것을 요구해요.

### 까다로운 환경

- 비행기 모드와 느린 네트워크: 하얀 화면이 아니라 명확한 메시지가 나와야 해요.
- 지원하는 가장 작은 아이폰과 가장 큰 아이폰: 잘리는 것도, 키보드에 가려지는 것도 없어야 해요. 저는 Solys에서 작은 아이폰에서 화면이 잘려서 거절당한 적이 있어요.
- 앱을 번역했다면 긴 텍스트도요.

### 심사자를 위한 자료

- 로그인이 필요한 앱이라면 심사 메모에 데모 계정을 넣고 백엔드를 켜 두세요. 가이드라인 2.1에서 명시적으로 요구해요.
- 앱이 무엇을 하는지, 핵심 기능이 어디 있는지 두 문장으로 설명한 심사 메모도요.

그래도 앱이 거절됐다면 [Apple에 거절된 앱](https://devoria.fr/ko/expertise/app-rejected-by-apple) 페이지에서 일주일을 날리지 않고 대응하는 방법을 확인하세요. 스토어 페이지부터 출시까지 전체 그림은 [App Store에 앱 출시하기](https://devoria.fr/ko/expertise/publish-app-on-app-store)를 읽어 보세요.

## 빌드에 채워 넣는 테스트 시트

[16개 시나리오가 담긴 시트를 CSV로 내려받으세요](https://devoria.fr/ressources/recette-premiere-app-ios.csv). 준비 사항, 실행할 동작, 기대 결과, 확인한 근거를 구분해 두었어요. Numbers, Excel, Google Sheets로 가져온 다음 각 테스트의 버전, 기기, 결과를 적으면 돼요.

가상의 독서 기록 앱이라면 "페이지 저장"만으로는 부족해요. 24페이지를 기록하고, 앱을 완전히 종료한 뒤 다시 실행해서 그 값이 남아 있는지 확인하세요. 실행하지 않은 테스트는 "테스트 예정"으로 남겨 두세요. 앱에 구독이 없다면 구매 시나리오에는 "해당 없음"이라고 쓰고 그 이유를 적으세요.

이 시트는 상황에 맞게 고쳐 쓰는 출발점이지 인증이 아니에요. 실제로 확인한 흐름을 심사자에게 설명할 수 있도록 [App Review 메모와 다른 무료 템플릿](https://devoria.fr/ko/resources)도 함께 확인해 보세요.

## TestFlight에서 App Store로

TestFlight는 앱이 진짜가 되는 단계예요. 실제 아이폰에서, 실제 사람들 손에서 돌아가요. [iOS Kit](https://devoria.fr/ko/kits/ios)의 흐름에서는 두 번째 단계예요. 앱의 핵심을 만들고 TestFlight로 내 아이폰에서 테스트한 다음, 구독을 연결하고 출시를 준비해요.

TestFlight 다음은 Apple 심사예요. [Apple Review Kit](https://devoria.fr/ko/kits/review-apple)에 제출 전 체크리스트와 심사자용 메모를 모아 두었어요. 홈페이지에서는 Claude Code로 [모바일 앱을 만드는](https://devoria.fr/ko) 네 단계를 보여 드려요.

Apple이 앱을 승인할 거라고 누구도 보장할 수 없어요. 결정은 Apple이 해요.

## 자주 묻는 질문

### TestFlight로 아이폰 앱을 어떻게 테스트하나요?

App Store Connect에 빌드를 올리고 테스터 그룹에 추가하세요. Expo라면 EAS Build로 컴파일하고 [EAS Submit](https://devoria.fr/ko/blog/eas-submit-ios-publish-expo-app-store)으로 올리면 돼요. Expo에 따르면 Apple의 처리가 끝난 뒤, 보통 10~15분 안에 TestFlight에 나타나요. 테스터는 App Store에서 무료로 받는 TestFlight 앱으로 설치해요. 유료 Apple Developer 계정이 필요해요.

### 테스터를 초대할 TestFlight 링크는 어떻게 만드나요?

App Store Connect에서 앱의 TestFlight 탭을 열고, External Testing 아래에서 그룹을 선택한 뒤 Create Public Link를 클릭하세요. Open to Anyone 또는 Filter by Criteria를 고르고, Set Limit으로 제한을 정하세요. 공개 링크 테스터는 익명이라서, 누가 무엇을 테스트했는지 알고 싶다면 이메일로 초대하는 게 좋아요.

### TestFlight 베타 심사가 App Store 심사를 대신하나요?

아니요. 베타 심사는 빌드가 규칙을 지키는지 확인하지만, 최종 심사는 스토어 페이지, 연령 등급, 구독, 법적 고지, 전체 사용 경험까지 봐요. 그래서 TestFlight에서 승인된 빌드도 출시 단계에서 거절될 수 있어요. 베타 심사는 외부 테스터에게 배포할 때만, 버전의 첫 빌드에 대해 진행돼요. 내부 테스터는 심사를 전혀 거치지 않아요.

### TestFlight에는 테스터를 몇 명까지 초대할 수 있나요?

내부 테스터는 최대 100명, 외부 테스터는 최대 10,000명까지 초대할 수 있어요. 내부 테스터는 내 App Store Connect 계정의 멤버이고, 베타 심사가 없으며, 각자 최대 30대 기기에 앱을 설치할 수 있어요. 외부 테스터는 첫 빌드의 베타 심사를 거친 뒤 이메일이나 공개 링크로 초대해요. 각 빌드는 90일 동안 테스트할 수 있어요.

### TestFlight에서 요금 청구 없이 구독을 테스트할 수 있나요?

네. TestFlight 빌드에서 한 구매는 Apple의 테스트 환경을 거치기 때문에 테스터에게 요금이 청구되지 않아요. 갱신은 빨라져요. 실제 기간과 상관없이 모든 구독이 하루에 한 번, 일주일 동안 최대 6번 갱신돼요. 최소한 표시 가격, 앱 기능 해제, 재설치 후 복원을 확인하세요. 전체 구성은 [iOS 인앱 구독](https://devoria.fr/ko/expertise/ios-in-app-subscription)에 정리했어요.

### Apple에 앱을 제출하기 전에 TestFlight에서 무엇을 확인해야 하나요?

심사자가 하듯이 TestFlight에서 앱을 다시 설치하고 온보딩을 끝까지 진행해 보세요. 모든 권한을 거부해 보고, 구매와 복원을 테스트한 다음, 비행기 모드와 지원하는 가장 작은 아이폰, 가장 큰 아이폰에서 확인하세요. 로그인이 필요한 앱이라면 심사 메모에 데모 계정을 준비하고 백엔드를 켜 두세요.


## 내 프로젝트

[Apple Review Kit](https://devoria.fr/ko/kits/review-apple): 제가 쓰는 App Store 심사 체크리스트, 수정한 Apple 리젝 사례, 심사자용 메모, 앱을 검토하는 Claude Code skill 두 개. 29 €.

[iOS Kit](https://devoria.fr/ko/kits/ios): Claude Code로 iPhone 앱을 만드세요. 제 앱들의 Starter Code, 작업을 검사하는 skill, Apple Review Kit, App Store Screenshots Kit, ASO Kit 포함. 129,99 €.
