다음을 통해 공유


AppCenterDistribute@3 - App Center v3 배포 작업

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

구문론

# 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 서비스 연결serverEndpoint -
string; 필수 사항입니다.

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


appSlug - 앱 슬러그
string; 필수 사항입니다.

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


appFile - 이진 파일 경로
입력 별칭: app. string; 필수 사항입니다.

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


빌드 버전buildVersion -
string;

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


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

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


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

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


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

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


dSYM 경로symbolsDsymFiles -
입력 별칭: 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때 사용합니다.

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


작업 제어 옵션

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

출력 변수

없음.

비고

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'

요구 사항

요구 사항 설명
파이프라인 유형 YAML, 클래식 빌드, 클래식 릴리스
다음에서 실행 에이전트, DeploymentGroup
요구 없음
기능 이 작업은 작업의 후속 작업에 대한 요구 사항을 충족하지 않습니다.
명령 제한 어느 것이든
settable 변수 어느 것이든
에이전트 버전 2.206.1 이상
작업 범주 배치하다
요구 사항 설명
파이프라인 유형 YAML, 클래식 빌드, 클래식 릴리스
다음에서 실행 에이전트, DeploymentGroup
요구 없음
기능 이 작업은 작업의 후속 작업에 대한 요구 사항을 충족하지 않습니다.
명령 제한 어느 것이든
settable 변수 어느 것이든
에이전트 버전 2.144.0 이상
작업 범주 배치하다
요구 사항 설명
파이프라인 유형 YAML, 클래식 빌드, 클래식 릴리스
다음에서 실행 에이전트, DeploymentGroup
요구 없음
기능 이 작업은 작업의 후속 작업에 대한 요구 사항을 충족하지 않습니다.
명령 제한 어느 것이든
settable 변수 어느 것이든
에이전트 버전 지원되는 모든 에이전트 버전입니다.
작업 범주 배치하다