{ "id": "B832BEC5-8C27-4FEF-9FB8-6BEC8524AD8A", "name": "AppCenterDistribute", "friendlyName": "App Center distribute", "description": "Distribute app builds to testers and users via Visual Studio App Center", "helpUrl": "https://docs.microsoft.com/azure/devops/pipelines/tasks/deploy/app-center-distribute", "helpMarkDown": "For help with this task, visit the Visual Studio App Center [support site](https://aka.ms/appcentersupport/).", "category": "Deploy", "visibility": [ "Build", "Release" ], "author": "Microsoft Corporation", "version": { "Major": 3, "Minor": 274, "Patch": 0 }, "minimumAgentVersion": "2.206.1", "releaseNotes": "Added support for forwarding Android mapping to App Center Diagnostics. Added missing descriptions.", "groups": [ { "name": "symbols", "displayName": "Symbols", "isExpanded": true } ], "inputs": [ { "name": "serverEndpoint", "type": "connectedService:vsmobilecenter", "label": "App Center service connection", "defaultValue": "", "required": true, "helpMarkDown": "Select the service connection for Visual Studio App Center. To create one, click the Manage link and create a new service connection." }, { "name": "appSlug", "type": "string", "label": "App slug", "defaultValue": "", "required": true, "helpMarkDown": "The app slug is in the format of **{username}/{app_identifier}**. To locate **{username}** and **{app_identifier}** for an app, click on its name from https://appcenter.ms/apps, and the resulting URL is in the format of [https://appcenter.ms/users/{username}/apps/{app_identifier}](https://appcenter.ms/users/{username}/apps/{app_identifier}). If you are using orgs, the app slug is of the format **{orgname}/{app_identifier}**." }, { "name": "app", "aliases": [ "appFile" ], "type": "filePath", "label": "Binary file path", "defaultValue": "", "required": true, "helpMarkDown": "Relative path from the repo root to the APK/AAB or IPA file you want to publish" }, { "name": "buildVersion", "type": "string", "label": "Build version", "required": false, "helpMarkDown": "The build version of the uploading binary which needs to be specified for `.zip` and `.msi`. This value will be ignored unless the platform is WPF or WinForms." }, { "name": "symbolsType", "aliases": [ "symbolsOption" ], "type": "pickList", "label": "Symbols type", "helpMarkDown": "Include symbol files to receive symbolicated stack traces in App Center Diagnostics.", "required": false, "defaultValue": "Apple", "groupName": "symbols", "options": { "Apple": "Apple", "Android": "Android", "UWP": "UWP" } }, { "name": "symbolsPath", "type": "filePath", "label": "Symbols path", "groupName": "symbols", "required": false, "helpMarkDown": "Relative path from the repo root to the symbols folder.", "visibleRule": "symbolsType == AndroidNative || symbolsType = Windows" }, { "name": "appxsymPath", "type": "filePath", "label": "Symbols path (*.appxsym)", "groupName": "symbols", "required": false, "helpMarkDown": "Relative path from the repo root to APPXSYM symbols file.", "visibleRule": "symbolsType = UWP" }, { "name": "dsymPath", "aliases": [ "symbolsDsymFiles" ], "type": "filePath", "label": "dSYM path", "groupName": "symbols", "required": false, "helpMarkDown": "Relative path from the repo root to dSYM folder. Path may contain wildcards.", "visibleRule": "symbolsType = Apple" }, { "name": "mappingTxtPath", "aliases": [ "symbolsMappingTxtFile" ], "type": "filePath", "label": "Mapping file", "groupName": "symbols", "required": false, "helpMarkDown": "Relative path from the repo root to Android's mapping.txt file.", "visibleRule": "symbolsType = Android" }, { "name": "nativeLibrariesPath", "type": "filePath", "label": "Native Library File Path", "groupName": "symbols", "required": false, "helpMarkDown": "Relative path from the repo root to the additional native libraries you want to publish (e.g. .so files).", "visibleRule": "symbolsType == Android" }, { "name": "packParentFolder", "aliases": [ "symbolsIncludeParentDirectory" ], "type": "boolean", "label": "Include all items in parent folder", "groupName": "symbols", "required": false, "helpMarkDown": "Upload the selected symbols file or folder and all other items inside the same parent folder. This is required for React Native apps.", "visibleRule": "symbolsType = Apple" }, { "name": "releaseNotesSelection", "aliases": [ "releaseNotesOption" ], "type": "radio", "label": "Create release notes", "required": true, "helpMarkDown": "Release notes will be attached to the release and shown to testers on the installation page.", "defaultValue": "input", "options": { "input": "Enter Release Notes", "file": "Select Release Notes File" } }, { "name": "releaseNotesInput", "type": "multiLine", "label": "Release notes", "required": true, "helpMarkDown": "Release notes for this version.", "visibleRule": "releaseNotesSelection = input", "properties": { "resizable": "true", "rows": "10", "maxLength": "5000" } }, { "name": "releaseNotesFile", "type": "filePath", "label": "Release notes file", "required": true, "helpMarkDown": "Select a UTF-8 encoded text file which contains the Release Notes for this version.", "visibleRule": "releaseNotesSelection = file" }, { "name": "isMandatory", "type": "boolean", "label": "Require users to update to this release", "helpMarkDown": "App Center Distribute SDK required to mandate update. Testers will automatically be prompted to update.", "defaultValue": "false", "required": false }, { "name": "destinationType", "type": "radio", "label": "Release destination", "helpMarkDown": "Each release will be distributed to either groups or a store.", "required": true, "defaultValue": "groups", "options": { "groups": "Groups", "store": "Store" } }, { "name": "destinationGroupIds", "aliases": [ "distributionGroupId" ], "type": "string", "defaultValue": "", "label": "Destination IDs", "helpMarkDown": "IDs of the distribution groups to release to. Leave it empty to use the default group and use commas or semicolons to separate multiple IDs.", "required": false, "visibleRule": "destinationType = groups" }, { "name": "destinationStoreId", "type": "string", "label": "Destination ID", "helpMarkDown": "ID of the distribution store to deploy to.", "required": true, "visibleRule": "destinationType = store" }, { "name": "isSilent", "type": "boolean", "label": "Do not notify testers. Release will still be available to install.", "helpMarkDown": "Testers will not receive an email for new releases.", "required": false, "visibleRule": "destinationType = groups" } ], "instanceNameFormat": "Deploy $(app) to Visual Studio App Center", "execution": { "Node16": { "target": "appcenterdistribute.js", "argumentFormat": "" }, "Node20_1": { "target": "appcenterdistribute.js", "argumentFormat": "" }, "Node24": { "target": "appcenterdistribute.js", "argumentFormat": "" } }, "messages": { "CannotDecodeEndpoint": "Could not decode the endpoint.", "NoResponseFromServer": "No response from server.", "FailedToUploadFile": "Failed to complete file upload.", "NoApiTokenFound": "No API token found on the Visual Studio App Center service connection.", "InvalidDestinationInput": "The destination input provided was invalid", "CanNotDistributeToMultipleStores": "Cannot distribute to multiple stores", "Succeeded": "App Center Distribute task succeeded", "CannotFindAnyFile": "Cannot find any file based on %s.", "FoundMultipleFiles": "Found multiple files matching %s.", "FailedToCreateFile": "Failed to create %s with error: %s.", "FailedToFindFile": "Failed to find %s at %s." } }