Xcode 작업

Azure Pipelines | Azure DevOps Server 2020 | Azure DevOps Server 2019 | TFS 2018TFS 2017TFS 2015

이 작업을 사용 하 여 macOS에서 Xcode 작업 영역을 빌드, 테스트 또는 보관 하 고 필요에 따라 앱을 패키지할 수 있습니다.

요청

xcode

YAML 코드 조각

# Xcode
# Build, test, or archive an Xcode workspace on macOS. Optionally package an app.
- task: Xcode@5
  inputs:
    #actions: 'build' 
    #configuration: '$(Configuration)' # Optional
    #sdk: '$(SDK)' # Optional
    #xcWorkspacePath: '**/*.xcodeproj/project.xcworkspace' # Optional
    #scheme: # Optional
    #xcodeVersion: 'default' # Optional. Options: 8, 9, 10, default, specifyPath
    #xcodeDeveloperDir: # Optional
    packageApp: 
    #archivePath: # Optional
    #exportPath: 'output/$(SDK)/$(Configuration)' # Optional
    #exportOptions: 'auto' # Optional. Options: auto, plist, specify
    #exportMethod: 'development' # Required when exportOptions == Specify
    #exportTeamId: # Optional
    #exportOptionsPlist: # Required when exportOptions == Plist
    #exportArgs: # Optional
    #signingOption: 'nosign' # Optional. Options: nosign, default, manual, auto
    #signingIdentity: # Optional
    #provisioningProfileUuid: # Optional
    #provisioningProfileName: # Optional
    #teamId: # Optional
    #destinationPlatformOption: 'default' # Optional. Options: default, iOS, tvOS, macOS, custom
    #destinationPlatform: # Optional
    #destinationTypeOption: 'simulators' # Optional. Options: simulators, devices
    #destinationSimulators: 'iPhone 8' # Optional. Default value: iPhone8 for Xcode 11 and iPhone 7 for other iOS projects; Apple TV for tvOS projects.
    #destinationDevices: # Optional
    #args: # Optional
    #workingDirectory: # Optional
    #useXcpretty: true # Optional
    #publishJUnitResults: # Optional

인수

인수 설명
actions
동작
하다 공백으로 구분 된 작업 목록을 입력 합니다. 유효한 옵션은 build , clean , test , analyzearchive 입니다. 예를 들어는 clean build 정리 빌드를 실행 합니다. XCODE FAQ를 사용 하 여 Apple: 명령줄에서 빌드를 참조 하세요.
기본값: 빌드
configuration
구성
필드 빌드할 Xcode 프로젝트 또는 작업 영역 구성을 입력 하세요. 이 필드의 기본값은 변수입니다 $(Configuration) . 변수를 사용 하는 경우 변수 탭에서 값 (예:)을 지정 해야 Release 합니다 Release .
기본값: $ (구성)
sdk
SDK)
필드 Xcode 프로젝트 또는 작업 영역을 빌드할 때 사용할 SDK를 지정 합니다. MacOS 터미널 응용 프로그램에서를 실행 xcodebuild -showsdks 하 여 유효한 sdk 목록을 표시 합니다. 이 필드의 기본값은 변수입니다 $(SDK) . 변수를 사용 하는 경우 변수 탭에서 값 (예:)을 지정 해야 iphonesimulator 합니다 iphonesimulator .
기본값: $ (SDK)
xcWorkspacePath
작업 영역 또는 프로젝트 경로
필드 리포지토리의 루트에서 Xcode 작업 영역 또는 프로젝트에 대 한 상대 경로를 입력 합니다. 예를 들어 MyApp/MyApp.xcworkspace 또는 MyApp/MyApp.xcodeproj입니다.
기본값: * */* xcodeproj/xcworkspace
scheme
구성표
필드 Xcode에 정의 된 구성표 이름을 입력 합니다. Xcode의 관리 되는 스키마 에서 공유 확인란을 사용 하도록 설정 하 고 공유 체계 여야 합니다. 구성표를 지정 하지 않고 위의 작업 영역 또는 프로젝트 경로 를 지정 하 고 작업 영역에 단일 공유 체계가 있으면 자동으로 사용 됩니다.
xcodeVersion
Xcode 버전
필드 Xcode의 대상 버전을 지정 합니다. Default에이전트 컴퓨터에서 기본 버전의 Xcode를 사용 하려면 선택 합니다. 버전 번호 (예:)를 선택 하면 Xcode 10 에이전트 컴퓨터에서 버전의 위치 (예:)에 대해 설정 되는 환경 변수가 사용 됩니다. XCODE_10_DEVELOPER_DIR=/Applications/Xcode_10.0.0.app/Contents/Developer Specify pathXcode developer 디렉터리에 특정 경로를 제공 하려면 선택 합니다.
기본값: 기본값
xcodeDeveloperDir
Xcode 개발자 경로
필드 특정 Xcode developer 디렉터리의 경로를 입력 합니다 (예: /Applications/Xcode_10.0.0.app/Contents/Developer ). 이 기능은 여러 버전의 Xcode가 에이전트 컴퓨터에 설치 되어 있는 경우에 유용 합니다.

서명 및 프로 비전 옵션

인수 설명
signingOption
서명 스타일
필드 빌드에 서명 하는 방법을 선택 합니다. Do not code sign서명을 사용 하지 않으려면 선택 합니다. Project defaults프로젝트의 서명 구성만 사용 하려면 선택 합니다. Manual signing수동으로 서명을 적용 하 고 필요에 따라 서명 id 및 프로 비전 프로필을 지정 하려면 선택 합니다. Automatic signing자동 서명을 적용 하 고 필요에 따라 개발 팀 ID를 지정 하려면 선택 합니다. 프로젝트에 서명이 필요한 경우 "Apple 설치 ..."를 사용 합니다. Xcode 빌드 전에 인증서 및 프로 비전 프로필을 설치 하는 작업입니다.
기본값: nosign
signingIdentity
서명 id
필드 빌드에 서명 하는 데 사용할 서명 id 재정의를 입력 합니다. 이렇게 하려면 에이전트 컴퓨터에서 기본 키 집합의 잠금을 해제 해야 할 수 있습니다. 값을 입력 하지 않으면 Xcode 프로젝트의 설정이 사용 됩니다.
provisioningProfileUuid
프로 비전 프로필 UUID
필드 이 빌드에 사용할 설치 된 프로 비전 프로필의 UUID를 입력 합니다. 서로 다른 스키마 또는 대상과 함께 별도의 빌드 작업을 사용 하 여 단일 작업 영역 (iOS, tvOS, watchOS)에서 대상 별로 별도의 프로 비전 프로필을 지정 합니다.
provisioningProfileName
프로 비전 프로필 이름
필드 이 빌드에 사용할 설치 된 프로 비전 프로필의 이름을 입력 합니다. 지정 된 경우 프로 비전 프로필 UUID 보다 우선적으로 적용 됩니다. 서로 다른 스키마 또는 대상과 함께 별도의 빌드 작업을 사용 하 여 단일 작업 영역 (iOS, tvOS, watchOS)에서 대상 별로 별도의 프로 비전 프로필을 지정 합니다.
teamId
팀 ID
(여러 개발 팀의 멤버가 아닌 경우 선택 사항) 10 자로 된 개발 팀 ID를 지정 합니다.

패키지 옵션

인수 설명
packageApp
앱 패키지 만들기
IPA 앱 패키지 파일이 빌드의 일부로 생성 되어야 하는지 여부를 나타냅니다.
기본값: false
archivePath
보관 경로
필드 만든 보관 파일을 저장할 디렉터리를 지정 합니다.
exportPath
내보내기 경로
필드 보관 파일에서 내보낸 제품의 대상을 지정 합니다.
기본값: output/$ (SDK)/$ (구성)
exportOptions
내보내기 옵션
필드 아카이브를 내보내기 위한 옵션을 제공 하는 방법을 선택 합니다. 의 기본값을 선택 하면 Automatic 내보내기 방법이 보관에서 자동으로 검색 됩니다. plist내보내기 옵션을 포함 하는 info.plist 파일을 지정 하려면 선택 합니다. Specify특정 Specify팀 ID를 제공 하려면 선택 합니다.
기본값: auto
exportMethod
내보내기 방법
하다 Xcode에서 아카이브를 내보내는 데 사용 해야 하는 방법을 입력 합니다. 예를 들면 app-store ,,, packagead-hocenterprise 또는 development 입니다.
기본값: 개발
exportTeamId
팀 ID
필드 내보내기 중에 사용할 Apple 개발자 포털에서 10 자로 된 팀 ID를 입력 합니다.
exportOptionsPlist
내보내기 옵션 info.plist
하다 내보내기 작업 중 사용할 옵션이 포함 된 info.plist 파일의 경로를 입력 합니다.
exportArgs
내보내기 인수
필드 내보내는 동안 사용할 추가 명령줄 인수를 입력 합니다.

장치 및 시뮬레이터 옵션

인수 설명
destinationPlatformOption
대상 플랫폼
필드 일반 빌드 장치가 잘못 된 경우 UI 테스트에 사용할 대상 장치의 플랫폼을 선택 합니다. Custom이 목록에 포함 되지 않은 플랫폼을 지정 하려면 선택 합니다. Default를 선택 하면 시뮬레이터 및 장치는 대상으로 지정 되지 않습니다.
기본값: 기본값
destinationPlatform
사용자 지정 대상 플랫폼
필드 일반 빌드 장치가 잘못 된 경우 UI 테스트에 사용할 대상 장치의 플랫폼을 선택 합니다. Custom이 목록에 포함 되지 않은 플랫폼을 지정 하려면 선택 합니다. Default를 선택 하면 시뮬레이터 및 장치는 대상으로 지정 되지 않습니다.
기본값: 기본값
destinationTypeOption
대상 형식
필드 UI 테스트에 사용할 대상 유형을 선택 합니다. 장치는 케이블 또는 네트워크 연결을 통해 빌드를 수행 하는 Mac에 연결 되어야 합니다. Xcode의 장치 및 시뮬레이터 를 참조 하세요.
기본값: 시뮬레이터
destinationSimulators
시뮬레이터
필드 UI 테스트에 사용할 Xcode 시뮬레이터 이름을 입력 합니다. 예를 들어 iPhone X (iOS 및 watchOS) 또는 Apple TV 4K (tvOS)를 입력 합니다. 대상 OS 버전은 선택 사항이 며와 같이 ' OS =versionNumber' 형식으로 지정할 수 있습니다 . 호스트 된 macOS 에이전트에 설치 된 시뮬레이터 목록은 여기에서 찾을수 있습니다.
기본값: iPhone8에 대 한 Xcode 11 및 iPhone 7 (기타 iOS 프로젝트의 경우) TvOS 프로젝트용 Apple TV.
destinationDevices
디바이스
필드 UI 테스트에 사용할 장치의 이름을 입력 합니다 (예:) Raisa's iPad . 현재 하나의 장치만 지원 됩니다. Apple에서는 장치 이름에 아포스트로피 ()를 허용 하지 않습니다 ' . 대신 올바른 작은따옴표 ( ' )를 사용할 수 있습니다.

고급 옵션

인수 Description
args
인수
필드 빌드할 추가 명령줄 인수를 입력 합니다. 이는 -target-project 작업 영역/프로젝트 및 체계를 지정 하는 대신 또는 인수를 지정 하는 데 유용 합니다. XCODE FAQ를 사용 하 여 Apple: 명령줄에서 빌드를 참조 하세요.
cwd
작업 디렉터리
필드 빌드를 실행할 작업 디렉터리를 입력 합니다. 값을 입력 하지 않으면 리포지토리의 루트가 사용 됩니다.
인수 별칭: workingDirectory
useXcpretty
Xcpretty 사용
필드 Xcpretty를 사용 하 여 xcodebuild 출력의 형식을 지정 하 고 JUnit 테스트 결과를 생성할지 여부를 지정 합니다. 이를 사용 하도록 설정 하려면 xcpretty가 에이전트 컴퓨터에 설치 되어 있어야 합니다. Microsoft에서 호스트 하는 빌드 에이전트에 미리 설치 되어 있습니다. Xcpretty on GitHub를 참조 하세요.
기본값: true
xcprettyArgs
Xcpretty에 대 한 인수
필드 위에서 xcpretty를 사용 하는 경우 xcpretty에 대 한 인수를 지정 합니다. xcpretty 인수 목록은 xcpretty on GitHub를 참조 하세요.
publishJUnitResults
Azure Pipelines/tfs에 테스트 결과 게시
필드 위에서 xcpretty를 사용 하도록 설정한 경우 junit 테스트 결과를 Azure Pipelines/tfs. 게시할지 여부를 지정 합니다.
기본값: false
testRunTitle
테스트 실행 제목
필드 위에서 xcpretty 및 publishJUnitResults를 사용 하도록 설정한 경우에는 테스트 실행 제목을 지정할 수 있습니다.

작업 제어 옵션

예제

Xcode 앱 빌드

오픈 소스

이 작업은 GitHub에서오픈 소스입니다. 피드백과 기여를 환영합니다.

여러 프로 비전 프로필 사용

현재 Xcode 작업에 대 한 여러 프로 비전 프로필을 지원 하지 않습니다 (예: iOS 앱 확장의 경우).

FAQ

에이전트가 필요한가요?

빌드 또는 릴리스를 실행하려면 하나 이상의 에이전트가 필요합니다.

문제가 있습니다. 문제를 어떻게 해결할 수 있나요?

빌드 및 릴리스 문제 해결을 참조하세요.

기본 에이전트 풀을 선택할 수 없으며 빌드 또는 릴리스를 큐에 넣을 수 없습니다. 이 문제를 해결하려면 어떻게 해야 합니까?

에이전트 풀을 참조하세요.

“오류: 로컬 발급자 인증서를 가져올 수 없습니다.” 오류로 인해 NuGet 푸시 작업이 실패합니다. 이 문제를 어떻게 해결할 수 있나요?

이 문제는 신뢰할 수 있는 루트 인증서를 추가하여 해결할 수 있습니다. NODE_EXTRA_CA_CERTS=file 환경 변수를 빌드 에이전트에 추가하거나 NODE.EXTRA.CA.CERTS=file 작업 변수를 파이프라인에 추가할 수 있습니다. 이 변수에 대한 자세한 내용은 Node.js 설명서를 참조하세요. 파이프라인에서의 변수를 설정하는 방법은 파이프라인에서 변수 설정을 참조하세요.