Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- SWiFT
- concurrency
- App Clip
- Physical Audio
- profile
- actor
- MDM
- DooC
- AppleEvent
- swiftUI
- async
- Mac
- WWDC 2021
- NSUserActivity
- METAL
- Xcode Cloud
- Hand Action Detect
- User Enrollment
- Hand Pose Detect
- detent
- AVFoundation
- Xcode Organizer
- SF Symbols
- DriverKit
- AR Quick Look
- ProRAW
- Object Capture
- SF Symbols 3.0
- CoreML
- Reality Composer
Archives
- Today
- Total
nyancoder
WWDC 2021 - Explore Xcode Cloud workflows 본문
원본 영상: https://developer.apple.com/videos/play/wwdc2021/10268/
Start conditions
- Xcode의 Report Navigator에 새 클라우드 탭이 추가되었습니다.
- 팀의 Workflow와 빌드를 확인할 수 있습니다.
- Pull Request를 받았을 때, 매번 자동으로 동작하는 Workflow를 구성해볼 수 있습니다.
- 앱을 자동으로 분석, 테스트, 내 앱을 분석, 테스트, 결과를 생성할 수 있습니다.
- 개발팀에게 결과를 알릴 수 있습니다.
- 팀 구성원들에게 앱을 전달할 수 있습니다.
- Product -> Xcode Cloud -> Manage Workflow를 선택해서 새 Workflow를 구성할 수 있습니다.
- Workflow관리 화면에서 + 버튼을 눌러 자신의 앱을 선택합니다.
- Workflow를 추가하는 화면에서 Name을 수정하여 "Pull Requests"와 같은 원하는 이름을 선택할 수 있습니다.
- Restrict Editing을 활성화하여 일부의 구성원만 Workflow를 수정할 수 있게 할 수 있습니다.
- 기본 저장소 설정은 로컬의 저장소 설정을 기반으로 자동으로 구성됩니다.
- 시작 조건은 Pull Request가 발생할 때마다 실행되는 것처럼 다양한 조건을 정해줄 수 있습니다.
- 저장소에서 병합할 기준 브랜치와 가져올 브랜치를 선택하여 매번 자동으로 머지할 수 있습니다.
- 실행 조건을 Custom Conditions로 선택하여 특정 파일이나 폴더가 변경되었을 때로 설정할 수 있습니다.
- Auto-cancel Builds가 선택된 경우 실행될 때 이전의 실행 중인 Workflow를 취소합니다.
- 브렌치가 변경되었을 때 실행하는 조건은 변경이 일어날 때 항상 실행되며 Pull Request를 무시합니다.
- 태그가 변경될 때 실행은 새로운 태그가 생성될 때 빌드됩니다.
- 반복 일정에 따라 빌드를 실행할 수 있습니다.
Set up environment
- 최신 릴리즈나 베타 버전을 사용하여 빌드할 수 있습니다.
- XCode에서 로컬의 일부 파일이 변경되면 해당 부분만 빌드하여 빠르게 결과를 얻는 것처럼 Xcode Cloud도 동일하게 빠른 결과를 얻을 수 있습니다.
- Clean을 선택하면 항상 새로운 상태에서 처음부터 빌드를 하여 오래 걸리지만 배포될 앱을 빌드할 때 유용합니다.
- Xcode Cloud API를 통해 데이터에 접근하고 Workflow를 구성하고 빌드를 시작하거나 사용자 정의된 스크립트를 실행할 수 있습니다.
- 이러한 API를 이용하여 원하는 도구를 만들어 사용할 수 있습니다.
- 환경 변수를 사용하면 소스 저장소에 보관하고 싶지 않은 정보를 환경변수로 제공할 수 있습니다.
- 또한 추가적인 보호를 위해 환경 변수를 비밀로 표시할 수 있습니다.
Configure actions
- Xcode Cloud를 사용하면 빌드, 정적 분석, 테스트, 결과물 보관을 수행할 수 있습니다.
- Action 탭에서 Archive를 선택하여 원하는 플랫폼과 Scheme을 선택할 수 있습니다.
- 원한다면 Provisioning profile이나 code signing identities 없이 결과물을 TestFlight에 등록하거나 App Store의 배포를 위해 사용할 수 있습니다.
- 테스트 작업을 추가하려면 + 버튼을 눌러 Test를 선택하여 추가할 수 있습니다.
- 테스트의 경우 Requirement 항목에서 반드시 테스트가 통과해야 하는지를 선택할 수 있습니다.
- 반드시 통과해야 함을 선택하는 경우 테스트가 실패할 때 전체 빌드 과정이 실패합니다.
- Use Scheme Settings을 통하여 특정 테스트를 실행할 수 있습니다.
- Xcode Cloud는 다양한 화면 크기의 시뮬레이터를 모아둔 권장 옵션을 제공합니다.
- 하지만 원하는 경우 특정 시뮬레이터나 특정 버전을 선택할 수 있습니다.
- 분석 작업을 추가하려면 + 버튼을 눌러 Analyze를 선택하여 추가할 수 있습니다.
- 테스트와 동일하게 반드시 통과해야 하는지를 선택할 수 있습니다.
- 경우에 따라서는 추가적인 작업 없이 컴파일 여부를 체크하거나 빌드의 오류를 검출하기 위해서 빌드만 수행할 수 있습니다.
- 이러한 경우 Build의 액션을 사용하여 검사할 수 있습니다.
Configure post-actions
- 모든 처리가 끝나면 알림을 보내거나 TestFlight에 결과물을 올릴 수 있습니다.
- 빌드에 성공한 경우에 항상 메시지를 보낼 수 있으며, 실패 이후 성공한 경우에만 보내거나, 보내지 않을 수도 있습니다.
- 빌드가 실패한 경우에도 항상 메시지를 보내거나, 성공 이후 실패한 경우에만 보내거나, 보내지 않을 수 있습니다.
- Post-Actions 메뉴에서 +를 눌러 Notify를 선택하면 알림을 보낼 수 있습니다.
- 알림을 보낼 대상으로 Slack과 통합하여 메시지를 보낼 수 있으며 Slack내의 원하는 채널을 등록하면 해당 채널에 메시지가 전달됩니다.
- 이메일을 보낼 수 있으나 기본적으로 모든 사용자는 빌드에 대한 알림을 자동으로 수신합니다.
- 특정 사용자를 제외하거나 그룹 이메일을 추가하거나 할 때 이메일 항목을 사용해서 설정할 수 있습니다.
- 배포하는 기능에서는 내부 테스터에게 전달하거나 외부 테스터에게 전달할 수 있습니다.
- 내부 테스터를 통해서 개발 팀 구성원에게 Clean 되지 않은 상태로 빠르게 빌드하여 전달할 수 있습니다.
- 외부 테스터는 릴리즈 브랜치에 권장되며, 베타 앱 리뷰를 받은 다음 등록되어 외부 테스터 및 App Store에 배포할 수 있습니다.
- App Store Connect에서 이전과 동일한 방식으로 TestFlight 그룹을 관리할 수 있습니다.
- 여러 개의 내부 및 외부 그룹이 있으며 각 그룹을 Workflow에서 사용할 수 있습니다.
- 내부 TestFlight 그룹과 함께 자동으로 배포하려면 우선 Archive 작업을 추가해야 합니다.
- 그다음 Archive의 배포 옵션을 내부 테스트로 설정해야 합니다.
- 마지막으로 TestFlight Internal Testing을 추가해야 합니다.
- Post-Actions에서 + 버튼을 눌러 Internal Testing을 추가할 수 있습니다.
- 이후 Groups에서 + 버튼을 눌러 원하는 Test Flight의 내부 테스터 그룹을 설정할 수 있습니다.
- TestFlight External Testing으로 배포하려면 시작 조건이 단일 특정 Branch여야 합니다.
- 이후 빌드가 항상 Clean 되도록 옵션을 선택해야 합니다.
- 마지막으로 저장 결과물의 배포 설정을 TestFlight 및 App Store로 설정해야 합니다.
- 이후 과정은 내부 태스팅과 거의 동일합니다.
Recommended strategies
- Release를 위해서는 Release용으로 지정된 브렌치에서 Workflow를 실행해야 합니다.
- 이후 전체 테스트를 수행하고 결과를 Archive 한 다음 외부 TestFlight 그룹과 사용자에게 배포해야 합니다.
- 예제 Workflow를 보자면, Workflow가 항상 릴리즈 브렌치의 변경사항을 빌드하기 위해서 시작 조건을 릴리즈 브렌치의 모든 변경으로 설정합니다.
- 캐싱으로 발생할 수 있는 문제를 피하기 위해 항상 빌드가 처음부터 이루어지도록 Clean 옵션을 선택해줍니다.
- 안정적인 결과를 얻을 수 있도록 특정 버전의 Xcode와 macOS를 고정해서 선택합니다.
- 테스트에서는 다양한 시뮬레이터에서 테스트를 수행합니다.
- Archive 작업을 추가하고 대상을 TestFlight 및 App Store로 설정합니다.
- Post-Actions항목에서 외부 테스터 그룹을 포함하여 배포를 설정합니다.
- 또 다른 Workflow예제는 매일 밤 테스트를 수행하는 것입니다.
- 매일 밤 정해진 시간에 최대한 많은 시뮬레이터에서 테스트를 수행합니다.
- 테스트 실패는 QA팀에 보고되며, 테스트가 목적이므로 배포를 수행하지는 않습니다.
- 이러한 테스트를 위해서는 시작 조건에서 월요일부터 금요일까지 오전 1시처럼 특정 시간을 선택하도록 조건을 설정합니다.
- 최신 Xcode 버전을 선택하여 새 도구가 출시될 때에도 앱이 성공적으로 빌드되는지 확인합니다.
- 여러 가지 테스트 계획과 시뮬레이터들을 선택합니다.
- 정적 분석을 실행하도록 추가하고 이 작업도 통과해야 하도록 처리합니다.
- 따라서 이러한 테스트나 정적 분석 중 하나라도 실패하면 QA 팀은 메시지를 전달받을 수 있습니다.
- 빌드 성공은 따로 알리지 않고 모든 실패에 대한 이벤트를 전달하도록 합니다.
- 원하는 Slack 채널이나 이메일 주소를 추가합니다.
- Xcode의 Product 메뉴 아래에 Manage Workflows가 있으며, 팀이 사용하는 모든 워크플로를 살펴볼 수 있습니다.
'WWDC > WWDC 2021' 카테고리의 다른 글
WWDC 2021 - Meet Group Activities (0) | 2021.07.18 |
---|---|
WWDC 2021 - Explore bindless rendering in Metal (0) | 2021.07.16 |
WWDC 2021 - Create 3D models with Object Capture (0) | 2021.07.14 |
WWDC 2021 - Add rich graphics to your SwiftUI app (0) | 2021.07.13 |
WWDC 2021 - Capture high-quality photos using video formats (0) | 2021.07.12 |
Comments