このタスクを使用して、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}
形式です。
ビルド バージョンの buildVersion
-
string
。
.zip
と .msi
に指定する必要があるアップロード バイナリのビルド バージョン。 プラットフォームが WPF または WinForms でない限り、この値は無視されます。
symbolsOption
-
シンボルの種類
入力エイリアス: symbolsType
。
string
。 使用できる値: Apple
、Android
、UWP
。 既定値: Apple
.
App Center Diagnostics でシンボル化されたスタック トレースを受信するシンボル ファイルが含まれています。
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 Distribute SDK は、更新プログラムを要求するために必要です。 テスターは自動的に更新を求められます。
destinationType
-
リリース先の
string
。 必須。 使用できる値: groups
、store
。 既定値: groups
.
各リリースは、グループまたはストアに配布されます。
宛先 IDの distributionGroupId
-
入力エイリアス: destinationGroupIds
。
string
。 任意
destinationType = groups
するときに使用します。
ビルド リリースを受け取る配布グループの ID。 既定のグループを使用する場合は空のままにし、複数の ID を区切るにはコンマまたはセミコロンを使用します。
宛先 IDを destinationStoreId
- する
string
。
destinationType = store
する場合に必要です。
ビルド リリースを受け取る配布ストアの ID。
isSilent
-
テスターに通知しない。リリースは引き続きインストールできます。
boolean
。 任意
destinationType = groups
するときに使用します。
テスト担当者は、新しいリリースの電子メールを受け取りません。
タスク コントロールのオプション
すべてのタスクには、タスク入力に加えて制御オプションがあります。 詳細については、「コントロール オプションと一般的なタスク プロパティを参照してください。
出力変数
なし。
注釈
このタスクを使用して、App Center を通じてテスト担当者とユーザーにアプリ ビルドを配布します。
- 最初に App Center にサインアップします。
- このタスクの使用方法の詳細については、App Center を使用して Azure DevOps ビルドをデプロイするApp Center のドキュメント記事を参照してください。
例示
このパイプラインの例では、Android アプリをビルドし、テストを実行し、App Center Distribute を使用してアプリを発行します。
# 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 |
の需要 | なし |
機能の | このタスクは、ジョブ内の後続のタスクに対する要求を満たしていません。 |
コマンドの制限 | どれでも |
設定可能な変数 | どれでも |
エージェントのバージョン | 2.206.1 以上 |
タスク カテゴリ | 展開 |