AppCenterDistribute@3 - App Center에서 v3 작업 배포

이 작업을 사용하여 Visual Studio App Center를 통해 테스터 및 사용자에게 앱 빌드를 배포합니다.

Syntax

# App Center distribute v3
# Distribute app builds to testers and users via Visual Studio App Center.
- task: AppCenterDistribute@3
  inputs:
    serverEndpoint: # string. Required. App Center service connection. 
    appSlug: # string. Required. App slug. 
    appFile: # string. Alias: app. Required. Binary file path. 
    #buildVersion: # string. Build version. 
    releaseNotesOption: 'input' # 'input' | 'file'. Alias: releaseNotesSelection. Required. Create release notes. Default: input.
    releaseNotesInput: # string. Required when releaseNotesSelection = input. Release notes. 
    #releaseNotesFile: # string. Required when releaseNotesSelection = file. Release notes file. 
    #isMandatory: false # boolean. Require users to update to this release. Default: false.
    destinationType: 'groups' # 'groups' | 'store'. Required. Release destination. Default: groups.
    #distributionGroupId: # string. Alias: destinationGroupIds. Optional. Use when destinationType = groups. Destination IDs. 
    #destinationStoreId: # string. Required when destinationType = store. Destination ID. 
    #isSilent: # boolean. Optional. Use when destinationType = groups. Do not notify testers. Release will still be available to install. 
  # Symbols
    #symbolsOption: 'Apple' # 'Apple' | 'Android' | 'UWP'. Alias: symbolsType. Symbols type. Default: Apple.
    #symbolsPath: # string. Optional. Use when symbolsType == AndroidNative || symbolsType = Windows. Symbols path. 
    #appxsymPath: # string. Optional. Use when symbolsType = UWP. Symbols path (*.appxsym). 
    #symbolsDsymFiles: # string. Alias: dsymPath. Optional. Use when symbolsType = Apple. dSYM path. 
    #symbolsMappingTxtFile: # string. Alias: mappingTxtPath. Optional. Use when symbolsType = Android. Mapping file. 
    #nativeLibrariesPath: # string. Optional. Use when symbolsType == Android. Native Library File Path. 
    #symbolsIncludeParentDirectory: # boolean. Alias: packParentFolder. Optional. Use when symbolsType = Apple. Include all items in parent folder.
# App Center distribute v3
# Distribute app builds to testers and users via Visual Studio App Center.
- task: AppCenterDistribute@3
  inputs:
    serverEndpoint: # string. Required. App Center service connection. 
    appSlug: # string. Required. App slug. 
    appFile: # string. Alias: app. Required. Binary file path. 
    releaseNotesOption: 'input' # 'input' | 'file'. Alias: releaseNotesSelection. Required. Create release notes. Default: input.
    releaseNotesInput: # string. Required when releaseNotesSelection = input. Release notes. 
    #releaseNotesFile: # string. Required when releaseNotesSelection = file. Release notes file. 
    #isMandatory: false # boolean. Require users to update to this release. Default: false.
    destinationType: 'groups' # 'groups' | 'store'. Required. Release destination. Default: groups.
    #distributionGroupId: # string. Alias: destinationGroupIds. Optional. Use when destinationType = groups. Destination IDs. 
    #destinationStoreId: # string. Required when destinationType = store. Destination ID. 
    #isSilent: # boolean. Optional. Use when destinationType = groups. Do not notify testers. Release will still be available to install. 
  # Symbols
    #symbolsOption: 'Apple' # 'Apple' | 'Android'. Alias: symbolsType. Symbols type. Default: Apple.
    #symbolsPath: # string. Optional. Use when symbolsType == AndroidNative || symbolsType = Windows. Symbols path. 
    #symbolsPdbFiles: '**/*.pdb' # string. Alias: pdbPath. Optional. Use when symbolsType = UWP. Symbols path (*.pdb). Default: **/*.pdb.
    #symbolsDsymFiles: # string. Alias: dsymPath. Optional. Use when symbolsType = Apple. dSYM path. 
    #symbolsMappingTxtFile: # string. Alias: mappingTxtPath. Optional. Use when symbolsType = Android. Mapping file. 
    #symbolsIncludeParentDirectory: # boolean. Alias: packParentFolder. Optional. Use when symbolsType = Apple. Include all items in parent folder.

입력

serverEndpoint - App Center 서비스 연결
string. 필수 요소.

Visual Studio App Center에 대한 서비스 연결을 선택합니다. 링크를 만들려면 링크를 클릭하고 Manage 새 서비스 연결을 만듭니다.


appSlug - 앱 슬러그
string. 필수 요소.

앱 슬러그는 형식입니다 {username}/{app_identifier}. 앱의 및 {app_identifier} 을 찾으 {username} 려면 App Center에서 해당 이름을 클릭하고 결과 URL은 형식https://appcenter.ms/users/**{username}**/apps/**{app_identifier}**입니다. 조직을 사용하는 경우 앱 슬러그는 형식 {orgname}/{app_identifier}입니다.


appFile - 이진 파일 경로
입력 별칭: app. string. 필수 요소.

게시할 APK/AAB 또는 IPA 파일에 대한 리포지토리 루트의 상대 경로입니다.


buildVersion - 빌드 버전
string.

.msi에 대해 지정 .zip 해야 하는 업로드 이진 파일의 빌드 버전입니다. 플랫폼이 WPF 또는 WinForms가 아니면 이 값은 무시됩니다.


symbolsOption - 기호 형식
입력 별칭: symbolsType. string. 허용되는 값: Apple, Android, UWP. 기본값은 Apple입니다.

App Center 진단에서 기호화된 스택 추적을 수신하는 기호 파일을 포함합니다.


symbolsOption - 기호 형식
입력 별칭: symbolsType. string. 허용되는 값: Apple, Android. 기본값은 Apple입니다.

App Center 진단에서 기호화된 스택 추적을 수신하는 기호 파일을 포함합니다.


symbolsPath - 기호 경로
string. 선택 사항입니다. 을 사용할 때 symbolsType == AndroidNative || symbolsType = Windows사용합니다.

리포지토리 루트에서 symbols 폴더로의 상대 경로입니다.


appxsymPath - 기호 경로(*.appxsym)
string. 선택 사항입니다. 을 사용할 때 symbolsType = UWP사용합니다.

APPXSYM 기호 파일에 대한 상대 경로입니다. 경로에 와일드카드가 포함될 수 있습니다.


symbolsDsymFiles - dSYM 경로
입력 별칭: dsymPath. string. 선택 사항입니다. 을 사용할 때 symbolsType = Apple사용합니다.

리포지토리 루트에서 dSYM 폴더로의 상대 경로입니다. 경로에 와일드카드가 포함될 수 있습니다.


symbolsMappingTxtFile - 매핑 파일
입력 별칭: mappingTxtPath. string. 선택 사항입니다. 을 사용할 때 symbolsType = Android사용합니다.

리포지토리 루트에서 Android 파일로의 상대 경로입니다 mapping.txt .


nativeLibrariesPath - 네이티브 라이브러리 파일 경로
string. 선택 사항입니다. 을 사용할 때 symbolsType == Android사용합니다.

게시하려는 추가 네이티브 라이브러리(예: .so 파일)에 대한 리포지토리 루트의 상대 경로입니다.


symbolsIncludeParentDirectory - 부모 폴더에 모든 항목 포함
입력 별칭: packParentFolder. boolean. 선택 사항입니다. 을 사용할 때 symbolsType = Apple사용합니다.

선택한 기호 파일 또는 폴더 및 다른 모든 항목을 동일한 부모 폴더 내에 업로드합니다. 이는 React Native 앱에 필요합니다.


releaseNotesOption - 릴리스 정보 만들기
입력 별칭: releaseNotesSelection. string. 필수 요소. 허용되는 값: input (릴리스 정보 입력), file (릴리스 정보 파일 선택). 기본값은 input입니다.

릴리스 정보는 릴리스에 첨부되고 설치 페이지의 테스터에게 표시됩니다.


releaseNotesInput - 릴리스 정보
string. 필요한 경우 releaseNotesSelection = input입니다.

이 버전의 릴리스 정보입니다.


releaseNotesFile - 릴리스 정보 파일
string. 필요한 경우 releaseNotesSelection = file입니다.

이 버전의 릴리스 정보를 포함하는 UTF-8로 인코딩된 텍스트 파일을 선택합니다.


isMandatory - 사용자가 이 릴리스로 업데이트하도록 요구
boolean. 기본값은 false입니다.

App Center 배포 SDK는 업데이트를 의무화하는 데 필요합니다. 테스터는 자동으로 업데이트하라는 메시지가 표시됩니다.


destinationType - 릴리스 대상
string. 필수 요소. 허용되는 값: groups, store. 기본값은 groups입니다.

각 릴리스는 그룹 또는 저장소에 배포됩니다.


distributionGroupId - 대상 ID
입력 별칭: destinationGroupIds. string. 선택 사항입니다. 을 사용할 때 destinationType = groups사용합니다.

빌드 릴리스를 받을 메일 그룹의 ID입니다. 기본 그룹을 사용하려면 비워 두고 쉼표 또는 세미콜론을 사용하여 여러 ID를 구분합니다.


destinationStoreId - 대상 ID
string. 필요한 경우 destinationType = store입니다.

빌드 릴리스를 받을 배포 저장소의 ID입니다.


isSilent - 테스터에게 알리지 마세요. 릴리스는 계속 설치할 수 있습니다.
boolean. 선택 사항입니다. 을 사용할 때 destinationType = groups사용합니다.

테스터는 새 릴리스에 대한 이메일을 받지 않습니다.


symbolsPdbFiles - 기호 경로(*.pdb)
입력 별칭: pdbPath. string. 선택 사항입니다. 을 사용할 때 symbolsType = UWP사용합니다. 기본값은 **/*.pdb입니다.

리포지토리 루트에서 PDB 기호 파일로의 상대 경로입니다. 경로에 와일드카드가 포함될 수 있습니다.


작업 제어 옵션

모든 작업에는 작업 입력 외에 제어 옵션이 있습니다. 자세한 내용은 컨트롤 옵션 및 일반적인 작업 속성을 참조하세요.

출력 변수

없음

설명

이 작업을 사용하여 App Center를 통해 테스터 및 사용자에게 앱 빌드를 배포합니다.

예제

이 예제 파이프라인은 Android 앱을 빌드하고, 테스트를 실행하고, App Center 배포를 사용하여 앱을 게시합니다.

# Android
# Build your Android project with Gradle.
# Add steps that test, sign, and distribute the APK, save build artifacts, and more:
# https://learn.microsoft.com/azure/devops/pipelines/ecosystems/android

pool:
  vmImage: 'macOS-latest'
steps:

- script: sudo npm install -g appcenter-cli
- script: appcenter login --token {YOUR_TOKEN}

- task: Gradle@2
  inputs:
    workingDirectory: ''
    gradleWrapperFile: 'gradlew'
    gradleOptions: '-Xmx3072m'
    publishJUnitResults: false
    testResultsFiles: '**/TEST-*.xml'
    tasks: build

- task: CopyFiles@2
  inputs:
    contents: '**/*.apk'
    targetFolder: '$(build.artifactStagingDirectory)'

- task: PublishBuildArtifacts@1
  inputs:
    pathToPublish: '$(build.artifactStagingDirectory)'
    artifactName: 'outputs'
    artifactType: 'container'

# Run tests using the App Center CLI
- script: appcenter test run espresso --app "{APP_CENTER_SLUG}" --devices "{DEVICE}" --app-path {APP_FILE} --test-series "master" --locale "en_US" --build-dir {PAT_ESPRESSO} --debug

# Distribute the app
- task: AppCenterDistribute@3
  inputs:
    serverEndpoint: 'AppCenter'
    appSlug: '$(APP_CENTER_SLUG)'
    appFile: '$(APP_FILE)' # Relative path from the repo root to the APK or IPA file you want to publish
    symbolsOption: 'Android'
    releaseNotesOption: 'input'
    releaseNotesInput: 'Here are the release notes for this version.'
    destinationType: 'groups'

요구 사항

요구 사항 Description
파이프라인 유형 YAML, 클래식 빌드, 클래식 릴리스
실행 중 에이전트, DeploymentGroup
요청 없음
Capabilities 이 작업은 작업의 후속 작업에 대한 요구를 충족하지 않습니다.
명령 제한 사항 모두
설정 가능한 변수 모두
에이전트 버전 2.206.1 이상
작업 범주 배포
요구 사항 Description
파이프라인 유형 YAML, 클래식 빌드, 클래식 릴리스
실행 중 에이전트, DeploymentGroup
요청 없음
Capabilities 이 작업은 작업의 후속 작업에 대한 요구를 충족하지 않습니다.
명령 제한 사항 모두
설정 가능한 변수 모두
에이전트 버전 2.144.0 이상
작업 범주 배포
요구 사항 Description
파이프라인 유형 YAML, 클래식 빌드, 클래식 릴리스
실행 중 에이전트, DeploymentGroup
요청 없음
Capabilities 이 작업은 작업의 후속 작업에 대한 요구를 충족하지 않습니다.
명령 제한 사항 모두
설정 가능한 변수 모두
에이전트 버전 지원되는 모든 에이전트 버전.
작업 범주 배포