스트리밍은 대부분의 브라우저와
Developer 앱에서 사용할 수 있습니다.
-
Xcode 및 Xcode Cloud에서 배포 간소화하기
Xcode의 간소화된 배포 기능을 사용해 앱을 공유하는 방법을 알아보세요. 클릭 한 번으로 앱을 TestFlight나 App Store에 제출할 수 있죠. 또한 Xcode Cloud로 테스터를 위한 메모를 TestFlight에 자동으로 포함해 배포 프로세스를 간소화하는 방법, 사후 작업으로 Mac 앱을 자동으로 공증하는 방법도 알려 드립니다.
챕터
- 1:44 - Archiving for the simulator
- 2:33 - Distribute your app with new streamlined methods
- 3:06 - TestFlight internal only streamlined option
- 4:24 - Upload to App Store Connect demo
- 4:58 - TestFlight Ready to Test push notification
- 6:05 - Automation with Xcode Cloud
- 7:01 - Configuring TestFlight support in Xcode Cloud Demo
- 9:02 - Automate TestFlight What to Test with Xcode Cloud
- 11:08 - What is Notarization?
- 12:12 - Notarization with Xcode
- 12:33 - Automate Notarization with Xcode Cloud
- 13:27 - Automate Notarization with Xcode Cloud Demo
- 15:07 - Download the Notarized app from Xcode Cloud
- 15:35 - Wrap-up
리소스
- Distributing your app for beta testing and releases
- Including notes for testers with a beta release of your app
관련 비디오
WWDC23
WWDC22
WWDC19
-
다운로드
♪ ♪
안녕하세요, 크리스입니다 잠시 후 제이슨도 함께하죠 'Xcode 및 Xcode Cloud에서 배포 간소화하기'를 시작합니다 개발자는 최상의 결과물을 내놓기 전에 반복 작업을 거쳐야 합니다 완성도 높은 앱을 만들기 위해서는 빠르고 쉽게 앱을 빌드한 뒤 테스트 및 배포하고 피드백을 받아서 그 피드백을 통합할 수 있어야 하죠 다행히도 이러한 작업에 적합한 도구가 있습니다 TestFlight를 사용하여 팀원과 친구, 가족에게 앱을 먼저 제공해 보세요 준비가 끝나면 App Store에 앱을 제출하거나 Apple의 공증을 받아서 고객에게 바로 공유할 수 있습니다 물론 이러한 채널을 위한 훌륭한 배포 도구가 있습니다 Xcode를 쓰면 되죠 이제 Xcode Organizer 윈도우에서 단 한 번의 클릭으로 아주 쉽게 배포할 수 있습니다 새 간소화 옵션 덕분이죠 또한 Xcode Cloud로 작업을 최적화할 수 있습니다 Xcode Cloud로 워크플로를 생성하여 코드 변경을 푸시할 때마다 앱 빌드와 공유를 자동화할 수 있죠 오늘은 TestFlight로 테스터에게 앱을 보내는 법을 알려 드릴게요 그리고 제이슨이 Mac에서 고객용 앱에 공증을 사용하는 법을 알려 드릴 겁니다 그럼 시작해 보죠
Backyard Birds 프로젝트를 열었습니다 git 브랜치에서 다양한 강조 색상을 실험하고 있죠 새로운 빨간색을 TestFlight에서 팀원들과 공유하려 합니다 그러려면 우선 아카이브를 만들어야 하죠 아카이브란 뭘까요? 아카이브는 앱의 기록입니다 앱의 최적화된 릴리즈 빌드를 담은 컨테이너죠 여기에는 로컬 심볼화에 쓰이는 디버그 심볼도 포함됩니다 줄여서 dSYMs라고 하죠 아카이브 콘텐츠는 선택한 대상에 따라 최종적으로 리패키징되죠 아카이브는 어떻게 할까요? 간단합니다, Product 메뉴의 Archive를 쓰면 되죠 참고로 현재 iPhone 시뮬레이터가 선택돼 있는데요 Xcode는 영리하게도 모든 iOS 기기 실행에 필요한 CPU 아키텍처로 아카이브를 빌드합니다
Xcode가 아카이브를 생성했으면 앱 배포 버튼을 누릅니다 Xcode 15부터 여러 간소화 옵션 중 하나를 선택할 수 있습니다 옵션을 선택하면 클릭 한 번으로 간단히 앱을 업로드하거나 내보낼 수 있죠 이제 간소화 옵션을 하나씩 살펴보겠습니다 TestFlight & App Store 옵션을 쓰면 TestFlight의 모든 기능을 쓸 수 있고 App Store에 제출할 수 있게 됩니다 새 옵션인 TestFlight Internal Only를 쓰면 여러분의 팀과 빌드를 공유할 수 있지만 App Store에는 제출할 수 없습니다 개발 브랜치에서 반복 작업을 하며 피드백을 받을 때 적합하죠
앱의 최적화된 빌드를 내보내려면 Debugging 옵션을 쓰면 됩니다 이 종류의 빌드는 등록된 기기에 설치할 수 있죠 또는 Release Testing 옵션도 있습니다 App Store에서 서명하는 것과 비슷하게 앱에 서명하는 옵션이죠 이러한 빌드는 팀 내 등록된 기기에 설치할 수 있습니다 각 간소화 옵션은 권장 설정을 사용합니다 권장 설정은 다음을 포함하죠 별도의 구성 없이 자동 서명으로 앱 재서명 서버 측 충돌 로그 심볼화를 위한 앱 심볼 임베딩 App Store 사용 준비를 위한 앱 빌드 번호 자동 증가 Swift에 포함된 dylib의 심볼 정보 제거입니다 그러면 앱이 작아지죠
간소화 옵션으로 제공되지 않는 기능이 필요하다면 Custom을 선택하면 됩니다 Custom으로 권장 설정 외의 다양한 설정을 고를 수 있죠 좋아요, 이 빌드를 제 팀원들에게 보내겠습니다 몇 가지 변경 사항을 빠르게 테스트해 보는 거고 이 빌드를 App Store에 보내고 싶지는 않으므로 TestFlight Internal Only 옵션을 선택한 뒤 배포를 클릭합니다
끝입니다 질문에 대답할 필요도 없죠 Xcode가 알아서 할 테니까요
Xcode가 앱을 리패키징하고 재서명한 뒤 심볼을 포함하여 TestFlight에 업로드합니다 이렇게 앱이 업로드됐습니다 나중에 앱의 업로드 및 처리가 끝나면 앱을 테스트할 준비가 되었다는 멋진 알림을 받죠 빌드 처리가 완료되면 Safari에서 App Store Connect로 이동합니다 여기서 TestFlight의 Backyard Birds 앱으로 가면 테스트 세부 정보를 편집할 수 있죠 팀원들이 각자의 기기로 TestFlight를 쓰면 새 빌드에서 테스트할 내용을 전부 확인할 수 있습니다 TestFlight로 스크린샷과 피드백을 보낼 수도 있죠 Xcode Organizer 윈도우에서 해당 피드백을 볼 수 있습니다 Xcode Organizer의 피드백 탭을 보니 제이슨이 제게 스크린샷과 메시지를 보냈군요 빨간색 버튼이 별로 마음에 들지 않나 봅니다 큰일이네요 할 일이 생겼군요
지금까지 많은 걸 알아봤습니다 Xcode로 앱 빌드를 아카이빙하고 클릭 한 번으로 TestFlight에 업로드했죠 테스트 내용에 관한 메모를 팀원들에게 전하고 피드백도 받았습니다 멋진 앱을 빌드하고 개선하는 중이죠 앱을 빌드하고 배포하려면 신경 쓸 일이 많은데요 Xcode Cloud는 배포 작업을 자동화하므로 개발에만 집중할 수 있습니다 Xcode Cloud는 Apple이 구축한 지속적 통합 및 전송 서비스입니다 Apple 개발자를 위해 특별히 설계됐죠 기능 브랜치에 변경 사항을 제출할 때 Xcode Cloud가 자동으로 빌드를 생성하도록 설정하고 싶습니다 그러고는 테스트 내용에 관한 메모를 포함해 해당 빌드를 TestFlight로 보내는 거죠 그러려면 Xcode Cloud 워크플로를 사용하면 됩니다 이미 앱의 워크플로를 추가했는데요 이 워크플로를 편집해 TestFlight 지원을 추가해 보죠 먼저 Integrate 메뉴에서 워크플로를 관리하고 아카이브 작업을 편집해 TestFlight 지원을 추가합니다 그리고 워크플로에 사후 작업을 추가하여 내부 테스터 그룹에 빌드를 보내겠습니다 시작해 보죠 새로운 Integrate 메뉴에서 Manage Workflows를 선택합니다
이전에 작업하던 내부 피드백 워크플로를 선택하고 톱니바퀴 버튼을 눌러 워크플로를 편집합니다
features/ 문자열로 시작하는 브랜치에서 변경이 발생할 때마다 이 워크플로를 시작하도록 구성해 놨습니다 제가 작업 중인 accent_color 기능 브랜치도 포함되죠 아카이브 작업을 편집하여 TestFlight에 배포하겠습니다 제가 프로토타이핑 중인 기능에 이 워크플로를 지정했습니다 이 빌드를 App Store에 보낼 생각은 없으니 TestFlight (Internal Testing Only)를 선택합니다
이 빌드를 팀원 일부에게만 공유하려 하는데요 이를 위해 TestFlight Internal Post-Action을 추가하겠습니다 그런 다음 새 기능을 보여 줄 TestFlight 그룹을 추가합니다 저는 'Birds of a Feather'로 이름 지었죠 추가와 저장을 클릭합니다
이제 완료를 누르죠 모든 준비가 끝났습니다 accent_color 브랜치에 변경 사항을 푸시할 때마다 Birds of a Feather 그룹으로 새 빌드가 전송되죠 강조 색상을 조정하고 변경 사항을 푸시해 봅시다 강조 색상을 빨강에서 보라로 변경하고 시뮬레이터로 빌드 및 실행해 확인해 보겠습니다
보라색 버튼이 나은 것 같군요 제이슨도 동의하길 바랍시다 Integrate 메뉴의 Commit을 클릭해 변경 사항을 푸시합니다
이제 변경된 파일을 검토할 수 있습니다 첫 번째 파일인 'Contents.json'에서 강조 색상을 빨강에서 보라로 변경했죠 잘 나타나 있군요 저는 커스텀 빌드 스크립트도 작업 중인데요 Xcode Cloud는 이 스크립트를 통해 git 커밋 메시지를 수집하고 TestFlight에서 빌드의 테스트 세부 정보에 포함합니다 정말 멋지죠? 이제 Xcode Cloud가 What to Test 메모를 자동으로 업데이트합니다 설정 방법에 대한 자세한 내용은 개발자 문서 중 '앱 베타 릴리즈에 테스터를 위한 메모 포함하기'를 참조하세요 이 문서는 제가 사용한 빌드 스크립트를 다룹니다 '버튼이 보라색이 됐습니다'라는 커밋 메시지를 추가하겠습니다 그러면 팀원들에게 변경 내용을 명확히 알릴 수 있죠 Stage All 버튼을 눌러 변경 사항을 전부 스테이징하고 Commit의 드롭다운 버튼에서 커밋 및 푸시한 뒤 푸시를 클릭하여 원격 리포지토리에 업로드합니다 끝입니다 이 푸시를 통해 Xcode Cloud가 아카이빙하고 TestFlight에 배포하죠
나중에 리포트 탐색기에서 빌드를 검토할 수 있습니다 내부 피드백 워크플로에서 가장 최근 빌드를 선택합니다 다행히도 아카이브 작업과 TestFlight 내부 테스트 사후 작업이 성공적이었군요 기기에서 TestFlight로 빌드를 확인하면 '버튼이 보라색이 되었습니다'라는 유용한 테스팅 메모가 보이죠 또 여기를 보시면 제이슨이 Organizer 윈도우에 피드백을 보냈군요 보라색 버튼이 마음에 드나 봅니다 좋아요, 그럼 이렇게 유지하죠 훌륭합니다 설정이 이상적으로 완료됐군요 Xcode Cloud 덕분에 기능 브랜치에 변경 사항을 푸시할 때마다 팀원들이 What to Test의 유용한 정보와 함께 앱의 새 빌드를 받게 됩니다 앞으로 계속해서 피드백을 통합하고 개선된 버전을 배포할 수 있죠 이제 개발에만 집중해 최상의 결과물을 만들 수 있습니다 지금까지 Xcode와 Xcode Cloud를 사용해 TestFlight로 앱을 배포하는 방법을 알아봤습니다 이제 제이슨이 공증 사용에 대해 알려 드리겠습니다 고마워요, 크리스 App Store는 Apple 고객과 만나는 좋은 수단이지만 Mac 앱을 직접 호스팅하고 판매하는 경우에는 앱 공증을 받으면 됩니다 앱을 공증하면 소프트웨어의 안전성을 Apple에서 검증했음을 사용자에게 알릴 수 있죠 공증은 어떻게 진행될까요? 앱의 아카이브를 만들어서 업로드하면 Apple 공증 서비스에서 악성 콘텐츠가 있는지 검사합니다 이 과정이 끝나면 공증 서비스에서 앱에 부착할 수 있는 공증 표를 발행하죠 그러면 공증된 앱을 고객에게 배포할 수 있게 됩니다
앱이 처음 실행될 때 Apple이 승인한 앱인지 macOS에서 확인합니다 앱에 부착된 표와 공증 서비스에 통신하여 제공받은 표를 둘 다 검토하죠 공증에 대한 자세한 정보는 WWDC 세션 '공증에 대한 모든 것' 'Mac 앱 공증의 새 기능'을 확인하세요 Xcode에서 앱을 공증하려면 우선 아카이브를 생성해야 합니다 크리스가 알려 줬듯이 Organizer 윈도우를 열어 새 간소화 배포 옵션에 액세스할 수 있습니다 Window에서 Organizer를 엽니다 앱 아카이브를 선택하고 앱 배포를 클릭합니다 Direct Distribution 옵션으로 앱을 공증할 수 있죠 지금까지는 공증에 Xcode를 사용했는데요 올해부터 이 과정을 자동화하기 위해 Xcode Cloud에서도 공증을 지원합니다 공증 워크플로를 설정하면 Xcode Cloud가 시작 조건 구성에 따라 자동으로 빌드를 시작합니다 공증 앱이 준비되면 Xcode Cloud에서 바로 다운로드할 수 있죠 저는 이미 Mac 앱의 릴리즈 워크플로를 구성했습니다 릴리즈 브랜치로 변경 사항이 푸시될 때마다 자동 테스트가 실행되고 아카이브가 생성됩니다 공증도 하도록 워크플로를 업데이트해 보죠
애드민과 앱 관리자만 공증 워크플로를 설정할 수 있으니 적절한 권한이 있는지 확인하세요
공증에 Xcode Cloud를 사용할 것이므로 취소를 눌러 Organizer 윈도우를 닫겠습니다
사이드바의 리포트 탐색기에서 Cloud 탭으로 갑니다
macOS 릴리즈 워크플로를 편집하려면 우클릭하여 Edit Workflow를 선택합니다
아카이브 작업이 이미 구성돼 있음을 알 수 있죠 공증 사후 작업을 추가해 보죠 추가 버튼을 눌러 Notarize를 선택합니다
이 추가 단계를 반영하도록 워크플로 설명을 업데이트하죠
다 됐습니다 저장을 클릭해 워크플로에 변경 사항을 저장합니다
버튼을 보라색으로 바꾼 Mac 앱이 정말 마음에 듭니다 이제 업데이트된 워크플로로 공증 과정을 시작해 보죠 워크플로를 우클릭하고 Start Build를 선택합니다
릴리즈 브랜치를 선택하고 빌드 시작을 클릭해 빌드를 대기열에 추가합니다
테스트와 아카이브 작업이 대기열에 있으며 해당 작업이 완료되면 새로 추가한 공증 사후 작업이 실행됩니다
Xcode Cloud가 빌드를 처리하는 동안 빌드 보고서를 자세히 살펴보죠
Xcode Cloud 빌드가 진행 중이면 Build Overview에 빌드에서 일어나는 모든 일의 요약이 나타납니다 그동안 다른 작업을 하고 싶다면 리포트 탐색기의 Cloud 탭에서 실행 중인 모든 빌드의 상태를 찾고 자세한 결과를 확인할 수 있죠
빌드 상태를 확인해 볼까요?
훌륭합니다 새 공증 사후 작업이 성공적으로 완료됐군요 Download Notarized App을 클릭해 다운로드합니다
다운로드가 끝난 뒤 View Notarized App을 클릭하면 다운로드한 아카이브가 나타나죠 압축을 풀면 공증된 앱을 볼 수 있습니다 이제 사용자와 공유할 준비가 끝났습니다
지금까지 다양한 도구를 사용하여 앱의 최고 버전을 제공하는 방법을 알아봤습니다 Xcode의 새 기능인 간소화된 배포 옵션을 통해 앱을 빠르게 업로드할 수 있죠
TestFlight 내부 배포로 변경을 반복 적용 하여 한정된 대상에게 앱을 시험하고 귀중한 피드백을 받을 수 있습니다 또한 Xcode Cloud 워크플로를 쓰면 배포 과정을 자동화할 수 있고 Mac 앱에 공증을 받아 App Store 외부로 배포하는 게 훨씬 쉬워집니다
앱 배포의 이러한 개선 사항을 통해 소중한 시간을 절약하고 가장 잘하는 일에 집중해 보세요 멋진 앱을 빌드하는 거죠 시청해 주셔서 감사합니다 ♪ ♪
-
-
8:50 - Use Xcode Cloud to add a Git commit message to TestFlight What to Test
#!/bin/zsh # ci_post_xcodebuild.sh if [[ -d "$CI_APP_STORE_SIGNED_APP_PATH" ]]; then TESTFLIGHT_DIR_PATH=../TestFlight mkdir $TESTFLIGHT_DIR_PATH git log -1 --pretty=format:"%s" >! $TESTFLIGHT_DIR_PATH/WhatToTest.en-US.txt fi
-
-
찾고 계신 콘텐츠가 있나요? 위에 주제를 입력하고 원하는 내용을 바로 검색해 보세요.
쿼리를 제출하는 중에 오류가 발생했습니다. 인터넷 연결을 확인하고 다시 시도해 주세요.