시작 하기 전
TestFlight 배포 하기 전
iOS 앱을 개발하고, 사용자(앱스토어)에게 배포하기 전 테스터들과 앱을 테스트하는 과정이 필요한데, 이 과정에서 TestFlight 를 사용합니다.
앱 배포하기 전에는 애플 개발자 계정을 등록을 하고, 애플 커넥트에 앱을 추가를 하는 과정이 먼저 진행되어 있어야 합니다!
23년 12월 30일 기준으로 애플에서는 연 129,000원의 구독료를 받고 있습니다.
https://developer.apple.com/kr/
테스트 플라이트 (TestFlight) 그게 뭐지?
App Store에 앱을 릴리즈하기 전에 TestFlight에서 사용자를 간편하게 초대하여 앱 및 앱 클립을 테스트하고 의미 있는 피드백을 얻을 수 있습니다. 이메일 주소만을 이용하여, 또는 공개 링크를 공유하여 테스터를 최대 10,000명까지 초대할 수 있습니다.
빌드는 업로드 후 90일 동안 활성 상태를 유지합니다.
하지만 10,000명 같은 경우는 공개 링크로 외부 테스터에 해당 됩니다 !!
저는 내부 테스팅으로 유저에게 배포하기전에 팀 내부에서 앱을 실행시키고, QA과정을 거치기 위한 작업이 필요했습니다.
- 내부 테스트
계정 소유자, 관리자, 앱 관리자, 개발자 또는 마케팅 역할을 맡은 팀원을 최대 100명까지 베타 테스터로 지정하세요. 그룹을 여러 개 만들고 각 그룹에서 중점적으로 확인하려는 기능에 따라 서로 다른 빌드를 추가할 수 있습니다. 또한 테스터 지표 필터를 적용하여 테스터 참여도를 더 잘 평가하고 관리할 수 있습니다. 앱을 반복 실행하는 동안 각 팀원은 최대 30대의 기기에서 베타 빌드를 빠르게 테스트하고 모든 테스트용 베타 빌드 버전에 접근할 수 있습니다.
사이드 프로젝트 같은 경우에는 100명의 테스터 면 정말 충분한 규모이지만, 대규모 기업 같은 곳에서는 더 많은 인원이 필요하기 때문에 애플에게 문의하면 조금 더 늘려 준다고 한답니다! (늘려줘도 적은 규모라고..)
🏃 테스트 플라이트 (TestFlight) 등록 해보기
이제 테스트 플라이트에 대해 조금 알아봤으니 테스트 플라이트에 앱을 올리는 과정을 설명해 볼게요!!
1. 애플 커넥트에 등록된 앱에 현재 배포하려는 버전 빌드 하기
Xcode에서 Product -> Archive 하여 현재 버전을 빌드해 줍니다.
이때 빨간색 화살표로 표시한, 빌드 하는 디바이스도 빌드가 가능한 디바이스로 맞춰줘야 정상적으로 진행이 됩니다.
여기서 Archive는 디버깅 정보를 포함하여 Xcode가 번들에 저장하는 앱의 빌드입니다.
2. 앱 배포 하기
기존 화면을 닫으셨거나, 이미 빌드를 하신 경험이 있다면
Window -> Organizer 로 들어와서 빌드 버전을 확인해 줍니다.
Organizer로 들어왔거나, 빌드 과정이 끝났으면 아래 사진과 같은 빌드 한 히스토리가 있는 Archives를 볼 수 있는데요, 여기서 빌드를 처음 해봤다면 저와 같이 여러 개가 아닌 하나의 빌드만 존재할 거예요!
여기서 오른쪽 상단에 있는 Distribute App 버튼을 눌러줍니다.
그러면 이제 배포 방법을 선택하는 창이 뜨게 됩니다.
여기서 저는 TestFlight 내부 테스트만 해보려고 하기 때문에 2번 옵션(TestFlight Internal Only)으로 Distribute를 진행하겠습니다.
TestFlight & App Store 옵션을 선택하여도, 바로 App Store에 올라가는 과정이 아니니, 1번을 선택하셔도 무방합니다.
하지만 반대로 TestFlight Internal Only 옵션 빌드로는 앱스토어에 배포할 수 없으니 선택하실 때 잘 고려해 주시길 바랍니다.
아래는 공식 문서에 간략하게 나와있는 옵션 설명 입니다.
- TestFlight & App Store
TestFlight를 통해 배포하고 App Store에 제출하는 기본 설정입니다. 이 옵션을 사용하면 아카이브에 있는 콘텐츠의 빌드 번호를 업데이트하고, 자동 코드 서명을 수행하고, 기호와 함께 앱을 업로드할 수 있습니다. - TestFlight Internal Only
TestFlight를 통해 배포하고 팀에 대한 액세스를 제한하는 기본 설정입니다. 앱의 개발 빌드가 App Store에 제출되는 것을 방지하려면 이 옵션을 사용하세요. - Release Testing
출시 전 테스트할 버전을 배포하기 위한 기본 설정입니다. 이 옵션을 사용하면 App Store 배포 옵션과 유사한 자동 코드 서명을 수행하고 팀이 App Store Connect에 등록한 장치에 설치하기 위해 내보낼 수 있습니다. Mac용으로 제작된 앱에는 이 배포 방법을 사용할 수 없습니다. - Enterprise
조직 구성원에게 배포할 기본 설정입니다. Apple Developer Enterprise Program에 참여하고 있는 경우 이 옵션을 사용하세요. Mac용으로 제작된 앱에는 이 배포 방법을 사용할 수 없습니다. - Debugging
디버깅용 버전을 배포하기 위한 기본 설정입니다. 팀이 App Store Connect에 등록한 장치에 설치하고 디버그할 버전을 내보내려면 이 옵션을 사용하십시오. 이를 통해 이를 지원하는 일부 기능에 대한 샌드박스 테스트 환경이 활성화됩니다.
원하는 옵션으로 선택하게 된다면, 아래와 같은 로딩 후에 애플 커넥트로 해당 빌드가 완료되어 앱이 전달이 됩니다.
앱에 따라 일정 시간 이상이 소요될 수 있습니다.
주로 생기는 에러
빌드 이슈 : 기존 빌드와 새 빌드와 버전이 달라 발생하는 이슈
이 부분은 빌드 하기 전에, 빌드 부분을 다르게 해서 업로드하면 됩니다.
인증 이슈 : 애플 계정의 인증서와 앱이 연결되어 팀 ID가 다를 때 발생
관련 이슈는 인증서 관련해서 해결하시면 되는데, 제가 겪었던 문제는 새로 업로드 할 예정입니다.
3. 빌드 확인하기
이제 애플 커넥트에 앱이 전달이 됐으므로 테스터들을 초대해 보고, 테스트 플라이트 설치 방법까지 알아봅시다!!
애플 커넥트에 앱이 있어야 진행이 되는 부분입니다!!
나의 앱 -> 앱(Runnect) -> TestFlight 로 이동해 주세요!
그러면 이제 iOS 빌드에 앱이 등록이 됐을 거예요!
앱에 따라 올려지는 시간이 다소 차이가 있을 수 있으니 등록이 안됐다면 기다리시면 됩니다!!
‼️ 아 근데 여기서 문제가 발생 합니다.
빌드를 완료 했는데 수출 규정 관련 문서 누락 이 뜨는데 어떻게 하나요??
제가 하는 사이드 프로젝트 같은 앱 들은 아래와 같이 관리 -> 위의 언급된 두 알고리즘에 해당하지 않다고 체크 하고 저장 누르면 해결 됩니다 !!
또는 아래 더보기 에서 다른 방법으로 해결 할 수 있습니다 !
info.plist 에
App Uses Non-Exempt Encryption 을 No 라고 해서 만들어주시면 다시 Archive 해주시면
경고가 안뜨게 됩니다.
소스 코드로는 아래 처럼 넣으면 됩니다!!
<key>ITSAppUsesNonExemptEncryption</key>
<false/>
관련 내용은 아래 포스팅에서도 확인할 수 있습니다.
수출 규정 관련 문서 누락 해결
그러면 아래와 같이 테스트 준비 완료 가 뜨게 됩니다.
많이 고생하셨어요 이제 테스터들을 초대만 하면 됩니다 ‼️
다음에는 테스터들을 초대하고, 테스터들이 빌드 된 앱을 사용할 수 있게 하는 2편으로 작성하겠습니다~
https://thingjin.tistory.com/entry/iOS-TestFlight-%EC%82%AC%EC%9A%A9%EB%B2%95-2%ED%8E%B8
해당 글은 아래 버전에서 작성하였습니다.
iOS 17.1.2
Xcode 15.0
Mac Sonama 14.2.1
'iOS' 카테고리의 다른 글
[Slack] Incoming Webhooks 사용 (feat: Fastlane in iOS) (0) | 2024.01.22 |
---|---|
[iOS] TestFlight 사용법 2편 (0) | 2023.12.31 |
[iOS] 외부 라이브러리 수정 후 프로젝트에 적용하는 방법 (0) | 2023.10.12 |
[iOS] SDK does not contain 'libarclite' at the path (0) | 2023.10.06 |
[iOS] 데이터 페이징 (Pagination) in UIKit ColletionView (0) | 2023.09.24 |