본문으로 건너뛰기
iOS Android 가이드

iOS 및 Android 앱을 테스터에게 배포하는 방법

iOS 및 Android 앱을 테스터에게 배포하는 방법: TestFlight, Google Play 테스트 트랙, 내부 앱 공유, Firebase App Distribution 및 ad hoc 빌드.

작성자

마틴 도나디유

작가

Valeria

리뷰어

조던

편집자

iOS 및 Android 앱을 테스터에게 배포하는 방법

iOS 앱을 테스터에게 배포하려면 TestFlight (내부 테스터는 즉시, 외부 테스터는 짧은 Beta App Review 후)를 사용하거나 등록된 장치에 대한 ad hoc 빌드를 사용하십시오. Android의 경우 Google Play 테스트 트랙 (내부, 폐쇄 또는 공개), Play 내부 앱 공유 (일회성 링크), Firebase App Distribution 또는 직접 다운로드를 통해 서명된 APK를 공유하십시오. 올바른 방법은 테스터가 누구인지, 얼마나 많은 테스터가 있는지, 빌드가 스토어 인프라를 통과해야 하는지에 따라 달라집니다.

이 안내서에서는 모든 옵션을 비교하고 Capacitor 앱을 설정하는 방법을 보여주며, 테스터가 일반적으로 마주하는 오류를 나열합니다.

선택

방법 플랫폼 테스터 수 테스터가 앱을 받기 전에 검토 테스터가 필요합니다. 최고의 선택
TestFlight 내부 iOS 100명 팀원 아니요 App Store Connect 사용자, TestFlight 앱 팀
테스트 플라이트 외부 iOS 10,000 Beta 앱 리뷰 (버전의 첫 번째 빌드) 이메일 초대 또는 공개 링크, TestFlight 앱 Beta 사용자, 고객
Ad hoc iOS 1년에 100대의 기종당 아니요 등록된 UDID, 개발자 모드 작은 QA 팀, 애플 리뷰 없음
내부 테스트 Android 100 전체 리뷰 없음, 일반적으로 몇 분 안에 사용할 수 있습니다 이메일 목록에 있는 Google 계정 당신의 팀
테스트를 위한 iOS 및 Android 앱 배포 Android 이메일 목록 또는 Google 그룹 Yes Google 계정, 옵인 링크 12명 이상의 베타 사용자
테스트를 위한 iOS 및 Android 앱 공개 Android 무제한 또는 제한 Yes 리스트에 옵인 공개 베타
애플리케이션 공유 안드로이드 링크를 가진 누구든지 아니오 구글 계정, 설정이 활성화된 경우 빠른 QA 빌드, code 버전
파이어베이스 앱 배포 모두 대형 아니오 이메일 초대; iOS는 등록된 UDID가 필요합니다. 플랫폼 간 QA
직접 APK 링크 안드로이드 누구든지 아니오 미지의 출처를 허용하십시오 빠른 내부 테스트

참고사항:

  • 스토어에 배포할 빌드를 사용하십시오. 테스트 플라이트와 플레이 트랙을 사용하십시오. 테스터가 사용하는 바이너리는 승격된 바이너리입니다.
  • 일일 QA 빌드? 두 개의 스토어에서 내부 테스트를 하거나, 또는 Firebase App Distribution을 사용하십시오.
  • 분 단위로 웹层 변경을 테스트해야 합니다. live update를 테스트 채널에 배포하기보다는 새로운 바이너리를 배포하는 것을 피하세요.

배포하기 전에 서명

모든 테스트 빌드는 서명되어야 합니다.

  • iOS 테스트 빌드는 App Store Connect 프로파일(테스트 플라이트) 또는 Ad Hoc 프로파일(직접 설치) 중 하나를 사용합니다. 두 경우 모두 Apple Distribution 인증서를 사용합니다. 자세한 내용은 iOS 인증서 및 배포 프로파일에 대한 설명서를 참조하세요. Android Play 트랙을 위한 빌드는 AAB로 서명되며 업로드 키로 서명됩니다. 직접 설치를 위해 APK는 릴리스 키로 서명되어야 하며, 디버그 APK도 설치되지만 디버그 모드가 활성화되어 있으며 다른 서명으로 서명되어 Play 빌드로 업그레이드할 수 없습니다. Ad Hoc iOS iOS 인증서와 배포 프로파일의 이해.
  • Android Play 트랙을 위한 빌드는 AAB로 서명되며 업로드 키로 서명됩니다. 직접 설치를 위해 APK는 릴리스 키로 서명되어야 하며, 디버그 APK도 설치되지만 디버그 모드가 활성화되어 있으며 다른 서명으로 서명되어 Play 빌드로 업그레이드할 수 없습니다.

iOS: 테스트 플라이트

빌드를 업로드하세요

Xcode에서: Product > 아카이브, 그리고 앱을 배포 > 앱 스토어 연결 > 업로드CI에서 명령 줄을 통해 export 하세요. .ipa 애플 스토어 연결 API 키를 사용하여 업로드하거나, 클라우드 빌드 서비스를 사용하여 자동으로 업로드하세요.

이 키를 추가하여

만약 앱이 표준 HTTPS 암호화만 사용한다면, App Store Connect는 매 빌드마다 export 규제 질문을 묻지 않도록 하세요. ios/App/App/Info.plist 처리 시간은 몇 분에서 1시간 정도 걸립니다. 빌드가 준비되면 이메일을 받으세요.

<key>ITSAppUsesNonExemptEncryption</key>
<false/>

설계가 완료되면 몇 분에서 1시간 정도 걸립니다. 빌드가 준비되면 이메일을 받습니다.

내부 테스트

  1. App Store Connect에서 앱을 열고 TestFlight > 내부 테스트, 그룹을 만들기 위해
  2. 팀원 추가. App Store Connect 역할 (관리자, 앱 매니저, 개발자, 마케팅…)이 있어야 합니다. 최대 100명.
  3. Enable 자동 배포 모든 새로운 빌드는 그룹으로 가도록 하세요.
  4. 테스터는 App Store에서 TestFlight 앱을 다운로드하고 초대 메시지를 수락하세요.

리뷰가 필요하지 않습니다. 업로드부터 전화까지 가장 빠른 경로입니다.

외부 테스트

  1. TestFlight > 외부 테스트 > + 그룹을 만들기 위해
  2. 이메일로 테스터 추가하거나 공개 링크를 활성화하여 테스터 수를 제한할 수 있습니다.
  3. 빌드를 그룹에 추가하고 테스트 정보를 입력하세요. (테스트할 내용, 피드백 이메일, 베타 앱 설명 및 데모 로그인 필요시)
  4. 제출하여 베타 앱 검토에 제출합니다. 각 버전의 첫 번째 빌드는 일반적으로 1일 이내에 검토됩니다. 동일한 버전의 후속 빌드는 완전한 검토 없이 배포됩니다.

외부 테스트는 최대 10,000명의 테스터를 지원합니다. 테스터는 TestFlight에서 피드백과 함께 스크린샷을 직접 보내고, App Store Connect에서 이를 볼 수 있습니다.

TestFlight 제한 사항을 알기

  • 빌드는 90일.
  • 테스터는 iOS 버전을 지원하는 빌드 (Capacitor 8은 iOS 15 이상을 요구합니다.)가 필요합니다.
  • TestFlight 빌드는 App Store의 프로덕션 인증서를 사용하므로 푸시 알림은 production context
  • TestFlight에서 앱 내 구매는 샌드박스 환경에서 사용되며 실제로 청구되지 않습니다.

APNs 환경입니다.

TestFlight 내 앱 구매는 샌드박스에서 사용되고 실제로 청구되지 않습니다.

  1. iOS: ad hoc 배포 iOS UDID 찾기, 또는 Finder 또는 Xcode에서 장치가 연결된 경우 UDID를 읽을 수 있습니다.
  2. 장치들을 인증서, 식별자 및 프로파일 > 장치.
  3. 에 등록하세요. Create an Ad Hoc
  4. Build an .ipa Build an with that profile (Xcode: Distribute App &gt; Release Testing
  5. 설치하세요
    • Drag & Drop .ipa Finder 또는 장치에 설치하는 방법 Xcode > 창 > 장치 및 시뮬레이터.
    • Host it with an itms-services HTTPS로 매니페스트를 배포하여 테스터가 링크를 탭할 수 있도록 하십시오. 서비스들 중 Firebase App Distribution은 이러한 작업을 자동으로 수행합니다.
  6. iOS 16 이상부터는 Capgo Live Update를 사용하여 앱을 설치할 수 있습니다. .ipa Mac에서 Xcode 또는 Apple Configurator를 사용하여 Developer Mode 장치에서 앱을 설치하려면 (설정 > 개인 정보 보호 및 보안). 테스터에게 iOS 및 Android 앱을 배포하려면 itms-services 링크는 필요하지 않습니다. 확인하세요. iOS 개발자 모드 활성화 방법.

새 테스터를 추가하려면 UDID를 등록하고 프로필을 재생성하고 다시 빌드해야 합니다. 장치 슬롯(1,000 장치당)은 회원 연도가 갱신될 때만 초기화되므로 장치 등록을 신중히 하십시오.

안드로이드: Google Play 테스트 트랙

Play Console은 3개의 테스트 트랙과 생산 트랙이 있습니다. 모든 트랙은 업로드 키로 서명된 AAB가 필요합니다.

내부 테스트

  1. 테스트 > 내부 테스트 > 테스터: 이메일 목록을 생성하세요 (최대 100개 주소).
  2. 새 릴리스 만들기AAB를 업로드하고 릴리스 노트를 추가한 후 저장하고 배포하세요.
  3. 복사 opt-in 링크 테스터에게 전송하세요. 그들은 Play Store에서 설치합니다.

내부 릴리스는 일반적으로 몇 분 내에 사용 가능하며, 완전한 검토를 기다리지 않습니다. 새로운 앱의 첫 릴리스는 Google이 앱을 처리하는 동안 더 오래 걸릴 수 있습니다.

닫힌 테스트

Closed tracks은 검토되고 이메일 목록 또는 Google 그룹에 지원됩니다. 이 트랙은 2023년 11월 13일 이후에 생성된 개인 개발자 계정에 적용되는 14일 동안 12명의 테스터를 위한 트랙입니다. 14일 동안 12명의 테스터 11월 13일 이후에 생성된 개인 개발자 계정에 적용되는 14일 동안 12명의 테스터를 위한 규칙입니다. Google 그룹을 사용하면 테스터가 쉽게 가입할 수 있습니다..

Apple과 Google Play 개발자 계정 만들기 방법에 대한 자세한 내용은

공개 테스트

Our 우리의 Android 베타 테스트 가이드

트랙을 자세히 비교합니다.

Internal app sharing is the fastest way to get any APK or AAB on a device through the Play Store, without version code rules and without review.

  1. Play Store를 통해 APK 또는 AAB를 장치에 설치하는 가장 빠른 방법은 내부 앱 공유입니다. 버전 __CAPGO_KEEP_0__ 규칙과 검토 없이 사용할 수 있습니다. 내부 앱 공유 (테스트 중) 업로드자 추가.
  2. APK 또는 AAB 업로드.
  3. 테스터는 플레이 스토어 앱을 열고 설정을 클릭하여 개발자 설정을 활성화합니다. 플레이 스토어 버전 7번을 눌러 개발자 설정을 활성화합니다. 내부 앱 공유.
  4. 테스터는 링크를 열고 설치합니다.

Pull Request 빌드의 QA에 유용합니다. 버전 코드를 증가시키지 않아도 됩니다.

안드로이드: 직접 APK 및 Firebase App Distribution

직접 APK

signed release APK를 빌드합니다. 새로운 Capacitor 프로젝트는 release 서명 설정이 없으므로 assembleRelease unsigned APK가 설치되지 않습니다. 서명 설정을 추가하여 signingConfigs.release 블록 (keystore 경로 및 암호, 일반적으로 Android 개발자 옵션에서 읽습니다. key.properties를 추가하고 android/app/build.gradle 를 첫 번째로 설정합니다. buildTypes.release.signingConfig 링크를 통해 공유합니다. 테스터는 브라우저 또는 파일 관리자를 통해 설치할 수 있는 앱을 설치하고 파일을 열 수 있습니다. Play Store 버전이 이미 설치되어 있다면, 서명이 다르므로 제거해야 합니다. USB를 통해 설치하는 경우

bun run build
bunx cap sync android
cd android && ./gradlew assembleRelease

Share android/app/build/outputs/apk/release/app-release.apk 2026년 9월 30일부터 브라질, 인도네시아, 싱가포르 및 태국에서 인증된 Android 기기에서만 앱을 설치할 수 있습니다. 앱의 패키지 이름이 인증된 개발자에 의해 등록된 경우에만 설치할 수 있습니다. 2027년 전 세계로 확대될 예정입니다. 테스터가 이 국가에 거주한다면 Android 개발자 콘솔 또는 Play 콘솔에서 패키지 이름을 등록하세요. adb install -r app-release.apk (see Share).

Testers adb allow

Firebase 앱 배포

Firebase 앱 배포는 양쪽 플랫폼을 지원하고 이메일 초대장을 발송하며 설치한 빌드에 대한 추적을 제공합니다.

bun add -g firebase-tools
firebase login

firebase appdistribution:distribute android/app/build/outputs/apk/release/app-release.apk \
  --app 1:1234567890:android:abc123def456 \
  --groups "qa-team" \
  --release-notes "Fix checkout crash"
  • 안드로이드 테스터는 이메일 링크 또는 앱 테스터 앱에서 설치합니다.
  • iOS 테스터는 여전히 ad hoc (또는 개발) 프로파일에 있어야 합니다. 앱 배포는 초대장을 수락할 때 테스터의 UDID를 수집하지만 그들을 등록하고 다시 빌드를 생성해야 합니다.
  • AAB 배포는 Firebase 프로젝트를 Google Play와 연결해야 합니다.

__CAPGO_KEEP_0__ 빌드 Capgo 빌드 builds Capacitor apps in the cloud. For test builds it can skip store submission and upload the binary to a time-limited download link with a QR code:

# Android APK/AAB for testers, no Play upload
bunx @capgo/cli@latest build request com.example.app \
  --platform android --no-playstore-upload --output-upload --output-retention 2d

# iOS ad hoc build (no App Store submission)
bunx @capgo/cli@latest build request com.example.app \
  --platform ios --ios-distribution ad_hoc --output-upload

# iOS build uploaded to TestFlight for external groups
bunx @capgo/cli@latest build request com.example.app \
  --platform ios --ios-testflight-groups "Beta Testers"

Add --output-record build.json CI에서 링크를 읽어 bunx @capgo/cli@latest build last-output --path build.json --field outputUrl 그것을 pull request 또는 채팅에 게시합니다. Capgo 빌드 문서 모든 옵션을 목록화

웹 변경에 대한 재빌드 Skip

Capacitor 앱의 대부분의 변경은 웹层에 있습니다. 텍스트 수정을 위한 바이너리 재빌드와 재배포는 테스트 플라이트 처리 및 검토에 하루를浪費합니다. Capgo Live Update, 테스터는 설치한 빌드를 유지하고, 테스트 채널에 새로운 자바스크립트 번들을 푸시합니다:

bunx @capgo/cli@latest bundle upload --channel beta

각 Pull Request에 대한 채널을 제공하고 QA가 동일한 설치된 앱에서 Switch할 수 있도록 해보세요. Pull Request를 설치 가능한 프리뷰로 변환.

문제 해결

iOS ad hoc에서 "설치할 수 없음" 디바이스 UDID가 프로파일에 포함되지 않았거나 프로파일이 만료되었습니다. security cms -D -i profile.mobileprovision.

App이 iOS에서 열리고 즉시 닫힙니다. 개발자 모드가 꺼져 있거나 프로파일이 만료되었습니다.

테스트 플라이트 빌드가 "처리 중"에 걸렸습니다. 1시간 이내에 기다리십시오. 실패 시 이메일에는 이유가 적혀 있으며, 일반적으로 사용 설명이 누락되거나 아이콘 문제로 인한 것입니다.NSCameraUsageDescription 테스트 플라이트 "준수 미달"입니다.

앱 스토어 연결에서 수출 준수 질문에 답변하거나 추가해 주십시오. to ITSAppUsesNonExemptEncryption to Info.plist.

이미 다른 서명으로 설치된 버전이 존재하거나 APK가 서명되지 않았거나 손상되었습니다. 기존 앱을 삭제하십시오. 테스터가 플레이 스토어에서 앱을 찾을 수 없습니다.

테스터가 초대된 계정으로 로그인되어 있는지 확인하고, 릴리스가 트랙에 배포되었는지, 국가가 사용 가능한지 확인하십시오. 업로드 시 "버전 __CAPGO_KEEP_0__이 이미 사용되었습니다."라는 메시지가 나타납니다.

“code 버전이 이미 사용 중입니다.” 업데이트 versionCode 에서 android/app/build.gradle 내부 앱 공유는 예외입니다.

테스트 플라이트에서 푸시 알림이 도착하지 않습니다. 테스트 플라이트는 생산 APNs 환경을 사용합니다. 권한과 푸시 제공자의 환경 설정을 확인하십시오. aps-environment 작은 팀을 위한 권장 설정

  1. 테스트 플라이트 외부 그룹과 플레이 폐쇄 테스트 트랙을 위한 베타 사용자, 주간 업데이트 main.
  2. 웹 전용 수정 사항에 대한
  3. 채널에서 실시간 업데이트 beta 베타가 안정되면, 두 개의 스토어에서 동일한 빌드를 프로모션하고, 권장 설정을 따르십시오.
  4. Beta 버전이 안정되면, 두 개의 스토어에서 동일한 빌드를 프로덕션으로 승격하고, 그 후에 (Translated within ±30% of the source, roughly 30 characters) 첫 번째 앱 리뷰 가이드.
Live updates for Capacitor apps

웹-layer 버그가 활성화된 상태에서 앱 스토어 승인까지 며칠 기다리지 않고 Capgo를 통해 패치를 배포하세요. 사용자는 배경에서 업데이트를 받으면서 네이티브 변경 사항은 일반적인 검토 경로에 남아 있습니다.

인간 지원

시작하기

최신 블로그

Capgo은 전문적인 모바일 앱을 만들기 위해 필요한 최고의 통찰력을 제공합니다.