Microsoft is retiring App Center: Here’s what React Native developers should use instead

Big bummer, React Native developers: Microsoft announced they are shutting down Visual Studio App Center on March 31, 2025.
We at Infinite Red have used App Center as a key part of many of our React Native consulting clients’ CI/CD pipeline and development workflow for years. It had a lot of useful features:
- Build: Cloud-based build service for iOS and Android
- Test: Device testing on real iOS and Android devices
- Distribution: Deploy to testers and app stores
- CodePush: Deploy updates directly to users’ devices
- Analytics & Diagnostics: Crash reporting and usage analytics
It was convenient that they were in one place, but now that Microsoft is pulling the plug, we need to find some alternatives.
Why did Microsoft shut down App Center?
I am not taking this announcement as Microsoft pulling back from their quite considerable investment in React Native. After all, Microsoft has literally led the React Native release team, maintains React Native Windows / macOS, React Native Test App, rnx-kit, and much more. And they’re using React Native across their suite of Office apps, Skype, even Windows — and more! They are investing more and more in React Native.
Instead, I have a theory. I don’t have any insider information on this, but I can do math. App Center was free for a lot of its services and this was just not a sustainable business model, even if that made it popular among companies who used React Native. It seems to me that it was inevitable that App Center would eventually shut down unless it became a source of revenue.
It’s for sure a bummer, but that’s okay — we have some great alternatives!
Let’s talk about what we recommend for each of these aspects, based on our extensive React Native experience. We have a few of our own strong opinions on the best path forward.
TL;DR: Use EAS (Expo Application Services) for your build pipeline and over the air (OTA) updates, GitHub Actions or CircleCI for your automated tests, and Sentry for error tracking and monitoring.
What is EAS?
EAS is a suite of cloud services built by the team behind Expo to simplify builds, deployment, and updates for both Expo and bare React Native projects. (You don’t need to be using Expo to use EAS!)
Some key features:
- EAS Build: Managed cloud builds for iOS and Android. Easily build binaries without complex native tooling.
- EAS Submit: Automatically submit your app to Apple App Store and Google Play Store.
- EAS Update: Deploy updates directly to your app, similar to CodePush.
The beauty of EAS is how well all the pieces work together. You can set up a smooth workflow from code to production, with the power and flexibility to customize it for your needs.
EAS is also 100% focused on React Native, while App Center is more of a general mobile app service. The team at Expo are experts in the React Native ecosystem and have been for years. This means that they deeply care about React Native apps and their services work best with React Native.
What is Sentry?
Sentry is a popular error and performance monitoring platform. It helps developers identify, triage, and fix issues in their code across multiple platforms and languages.
Sentry can give you really important insights to keep your React Native app stable and performant. It’s a great complement to EAS for a robust React Native workflow. We’ve used Sentry for years, and it’s one of the best in class.
For React Native apps, Sentry offers some really nice features:
- Error Monitoring: Capture and aggregate errors from your JavaScript code, native code, and third-party libraries in one place
- Performance Monitoring & Profiling: Track your software’s performance by sampling your program’s call stack in a variety of environments. Get function-level information about your code and enables you to fine-tune your program’s performance.
- Release Health: Compare crash rates, failure rates, and performance between releases to quickly identify problematic ones
- Device Data: See device details like model, OS, orientation, and more to reproduce errors faster
- Breadcrumbs: Understand what the user did before an error with automatically collected event logs
- Session Replay: Today, React for web has session replay, but it seems they are even shipping React Native replay soon
Not only that, but Sentry really cares about their React Native experience. Their docs are good and relevant.
We’ll talk more about Sentry in the error tracking & metrics section below.
Okay, let’s get started with the migrations!
Migrating from App Center Build to EAS Build
EAS Build is a very natural replacement for App Center Build, especially for React Native developers. It provides managed cloud builds for both iOS and Android, without the need for complex native tooling setup.
Here’s a high-level guide to migrate:
- Install the latest EAS CLI with
npm i -g eas-cli
- Run
eas init
in your project directory to set up the EAS configuration - Log in with
eas login
- Set up your build profiles in
eas.json
by runningeas build:configure
- Run
eas build
to start your first build
For more details, check out the EAS Build docs.
Migrating from App Center Test to GitHub Actions / CircleCI
In case you’re not already set up with another test CI service, we recommend either GitHub Actions or CircleCI. Our team has used both of them for years, and in fact never really used App Center Test after an initial evaluation.
GitHub Actions
Generally speaking, if you’re using GitHub, GitHub Actions is your best bet. It auto-configures your environment variables and is just a little bit less effort to set up.
With GitHub Actions, you can run Android builds relatively cheaply. Here’s a sample Android React Native configuration for setting that up (source).
name: GitHub Actions
on: [push, pull_request]
jobs:
build:
runs-on: ubuntu-latest
container: reactnativecommunity/react-native-android
steps:
- uses: actions/checkout@v2
- name: Envinfo
run: npx envinfo
- name: Build application
run: yarn install && cd android && chmod +x gradlew && ./gradlew assembleRelease
If you want to do iOS builds, you’ll need a macOS image, which costs about 8–10x more per build. We’re working on an Ignite Cookbook recipe for this, and I’ll update the article when we have it (remind me via email if I forget!)
CircleCI
If you’re not using GitHub or have another reason you’d prefer not to use GitHub Actions, we’ve found CircleCI to be an excellent alternative.
In our Ignite Cookbook we have a recipe for React Native on CircleCI:
https://ignitecookbook.com/docs/recipes/SampleYAMLCircleCI/
CircleCI, like GitHub Actions, offers Android builds for a relatively inexpensive cost, and iOS builds via macOS machines for about 8–10x the cost of the linux ones.
EAS Build Test
EAS Build also has a very early access end-to-end testing service via Detox, if you’re interested in trying that out.
Migrating from App Center Distribution to EAS Submit
EAS Submit makes it easy to send your app builds to both testers and app stores. It’s a great alternative to App Center’s Distribution service.
After setting up EAS Build, you can use eas submit
to upload your build to the Apple App Store or Google Play Store. EAS will handle the process of sending your build to the appropriate reviewers.
For TestFlight distribution on iOS, you can also use eas submit --platform ios --non-interactive
to upload your build and automatically send it to your TestFlight testers.
See the EAS Submit docs for more info.
Migrating from App Center CodePush to EAS Update
One of the most common uses of App Center was to use CodePush for OTA (“Over the air”) updates. Here’s a high-level guide on how to move from CodePush to EAS Update:
- Uninstall the CodePush SDK by removing the
react-native-code-push
package and any references to it in your JS and native code. - Ensure your project has a proper
app.json
file with anexpo
object. - Install the
expo
package by runningnpx install-expo-modules@latest
. - Install the latest EAS CLI with
npm i -g eas-cli
. - Log in to your Expo account with
eas login
. - Configure your project for EAS Update, build and deploy an update by following the EAS Update guide starting from Step 4.
- Test your app to verify updates are working. Install the current app store version, deploy a new update with EAS, and launch the app to see the update after a couple restarts.
- Rebuild your app and submit the new update-enabled version to the app stores.
This is just an overview — be sure to follow the detailed EAS Update migration guide for the nitty gritty steps. Expo recently published a blog post about this as well. And you should check out the EAS Update docs which help you configure when your app checks for updates.
Migrating from App Center Analytics & Diagnostics to Sentry
Switching from App Center’s analytics and crash reporting to Sentry is fairly straightforward:
- Sign up for a Sentry account and create a new project
- Install the Sentry SDK (1500 stars) in your app with
npm i @sentry/react-native
- Initialize Sentry in your app’s entry file (or Ignite’s built-in place for it)
- Deploy your app and start seeing error reports and analytics in your Sentry dashboard
Sentry’s React Native docs have more detailed instructions, and if you prefer Expo’s Sentry docs, they’re good too.
The @sentry/react-native
SDK was a collaboration between Expo (Expo CLI) and Sentry, which is why it’s so good!
You may also want to consider setting up release health tracking in Sentry to monitor crash free users and sessions. This is similar to the Analytics data that App Center provided.
Self-Hosting EAS and Sentry
EAS and Sentry have fairly generous free tiers, but if you need more than they provide and the cost is prohibitive, you do have the option to handle things yourself.
Notably, both have paid tiers, which means … maybe they won’t shut down, like App Center did. 🥴
For EAS, you can do local builds instead of relying on their servers. As the name implies, you can run them either locally on your machine or on your own infrastructure. Here are the docs for that.
eas build --platform android --local
We’ve used this with GitHub Actions for some clients — feel free to get in touch if you want help setting this up for you.
For Sentry, there’s a basic self-hosting option that uses Docker. Here are the docs for setting that up.
Need help?
This migration might feel a bit daunting — especially if your project is complex. Well … my company can help!
We’ve been building React Native apps since it came out in 2015, and it’s all we do. We have React Native experts, all in the United States and Canada, who have been with us for many years. Reach out and I’ll put together a team for you of 2–4 consultants who can help you:
- Plan your migration off of App Center
- Configure EAS / Sentry for your project’s needs
- Update your build, deploy, and monitoring pipeline
- Train your team to effectively maintain and use EAS, Sentry, and React Native
Just email me directly at my first name (jamon) at infinite dot red. Or submit a request on our website.
Planning to come to Chain React, the best React Native conference in the USA, this July (2024)? Make sure to say hi!