Export App Center Build configuration to Azure Pipelines
Important
Visual Studio App Center is scheduled for retirement on March 31, 2025. While you can continue to use Visual Studio App Center until it is fully retired, there are several recommended alternatives that you may consider migrating to.
Overview
With App Center, you can export all of your App Center Build configurations to Azure Pipelines using the Build export feature. You can download JSON or YAML file and import it into Azure Pipelines.
While direct migration of App Center Build configurations to Azure Pipelines is the easiest option, it might not be well optimized for your particular application. Consider building Azure Pipelines from scratch for a more optimized experience (Android, Xcode, Xamarin)
Prerequisites
You'll need an Azure DevOps project where you'll import a Build configuration. You can create a new project or use an existing one.
(Optional) Add Service Connection for App Center Tasks
If you have App Center Test or App Center Distribute integrated into your Build configuration, you'll need to create a Service Connection
- Navigate to Azure DevOps Project Settings -> Pipelines -> Service connections
- Select 'New Service connection'
- Search for 'Visual Studio App Center' -> Next
- Create API token, give the connection a name and Save it
Export using the JSON file
Export JSON file from the App Center Build page.
- Navigate to the App Center portal
- Choose your application
- Go to the Build section, choose your branch, and select export
- Select 'Download' and choose 'Download JSON'
Change the Project ID in JSON file
Get your Azure DevOps project's ID
- Navigate to the URL below and copy your project's ID
https://dev.azure.com/{organization}/_apis/projects?api-version=6.0
2. Paste your project ID into the project
parameter in the JSON file
Create Azure Pipeline
- Navigate to Azure DevOps -> Pipelines -> Import a Pipeline and choose downloaded JSON file
- In
Pipeline
section, chooseHosted (Azure Pipelines)
under theAgent Pool
parameter - Choose the latest macOS Microsoft-hosted agent under the
Agent Specification
parameter - In
Get Sources
section, add a connection to your application's repository
(Optional) Upload signing files and update passwords
If you use code signing in your App Center Build configurations, you'll need to upload respective files to the Azure Pipelines using Secure file feature. Additionally, you need to update password variables stored in pipelines
Android
- Upload a keystore file to your Azure DevOps project
- Update
keystorePassword
,keyAlias
,keyPassword
, andkeystoreFilename
variables
iOS/macOS
- Upload provisioning profiles and certificates to your Azure DevOps project
- Update
P12Password
,P12Filename
, andMobileProvisionFilename
variables
Windows (UWP)
- Upload a certificate to your Azure DevOps project
- Update
packageCertificatePassword
,packageCertificateFileName
, andpackageCertificateBase64String
(Optional) Add Service Connection to App Center related tasks
If you have App Center Distribute or App Center Test integrated, you'll need to modify the respective tasks
- Navigate to Azure DevOps -> Pipelines
- Select your imported pipelines and select Edit
- Find App Center tasks and choose previously created service connection in `App Center service connection' parameter
Export using the YAML file
Export YAML file from the App Center Build page.
- Navigate to the App Center portal
- Choose your application
- Go to the Build section, choose your branch, and select export
- Select 'Download' and choose 'Download YAML'
Configure your repository to work with Azure Pipelines
- Commit downloaded
azure-pipelines.yml
file to your application's repository - Navigate to Azure DevOps -> Pipelines -> Create Pipeline
- Choose where your code is located
- Review your pipeline and select
Run
More information regarding the YAML pipeline creation process can be found here.
(Optional) Upload signing files and update passwords
If you use code signing in your App Center Build configurations, you'll need to upload respective files to the Azure Pipelines using Secure file feature. Additionally, you need to update password variables stored in pipelines
Android
- Upload a keystore file to your Azure DevOps project
- Create
keystorePassword
,keyAlias
,keyPassword
, andkeystoreFilename
secret variables in Azure Pipelines - Update the YAML file with the created secret variables
...
keystorePassword: $(keystorePassword)
keyAlias: $(keyAlias)
keyPassword: $(keyPassword)
keystoreFilename: $(keystoreFilename)
...
iOS/macOS
- Upload provisioning profiles and certificates to your Azure DevOps project
- Create
P12Password
,P12Filename
, andMobileProvisionFilename
secret variables in Azure Pipelines - Update the YAML file with the created secret variables
...
P12Password: $(P12Password)
P12Filename: $(P12Filename)
MobileProvisionFilename: $(MobileProvisionFilename)
...
Windows (UWP)
- Upload a certificate to your Azure DevOps project
- Create
packageCertificatePassword
,packageCertificateFileName
, andpackageCertificateBase64String
secret variables in Azure Pipelines - Update the YAML file with the created secret variables
...
packageCertificatePassword: $(packageCertificatePassword)
packageCertificateBase64String: $(packageCertificateFileName)
packageCertificateFileName: $(packageCertificateBase64String)
...
(Optional) Authorize newly created pipeline to use App Center service connection
If you have App Center Distribute or Test integrated, you'll need to authorize pipelines to use the service connection.
- Open the currently running job, you'll see a message regarding permissions
- Select on the running job and
Permit
access to the service connection