Expo Application Services (EAS): Build and Submit
Tags: react, reactnative, mobile, webdev
Published: 2020-12-15 19:31:09


Today we're excited to announce the public preview of two brand new services: EAS Build and Submit. These are the first services available from Expo Application Services (EAS), our new cloud services.
#EAS Build
##Feature Preview
EAS Build is a new service that takes everything good about the Expo build service (`expo build:[ios|android]`) and makes it available to all React Native apps. You can set your app up to build for distribution in minutes or even less, thanks to [automatically managed app signing credentials](https://docs.expo.io/app-signing/managed-credentials/) and defaults that just work for most Expo and React Native apps.

![1_Yfou6wa_fi05Ps8anXeJBA](https://dev-to-uploads.s3.amazonaws.com/i/m06ala26ysg6ltp6chfo.png) 
<figcaption>In this screenshot, we go from a brand new project to release build running on EAS Build in 30 seconds.</figcaption>

We've also added support for "[internal distribution](https://docs.expo.io/build/internal-distribution/)" - a feature that makes it easy for you to share test builds with colleagues and friends without going through an app store, by using [ad hoc provisioning](https://expo.canny.io/feature-requests/p/iosbuild-with-adhoc-provision-profile) on iOS and standard APK side-loading on Android. Generating and updating the ad hoc provisioning profile can be handled entirely for you by EAS Build.

![1_9sydz-IelPB7FDMBSgRpwg](https://dev-to-uploads.s3.amazonaws.com/i/22m1eoil1iifs16s9teu.png)
<figcaption>Easily share builds with your team using “internal distribution”.</figcaption> 

EAS Build _currently_ works best with bare React Native apps. If you use the Expo managed workflow and end up needing to move to the bare workflow, you can transition seamlessly to EAS Build - just run eas build instead of expo build after ejecting.

##Coming later in 2021: full support for Expo managed workflow
With EAS Build, you can include libraries with native code that aren't part of the Expo standard library. For many of you, the Expo managed workflow is nearly a perfect fit - except for that one piece of functionality you absolutely have to have in your app, but that isn't part of the Expo standard library (whether that's [IAP](https://expo.canny.io/feature-requests/p/in-app-purchases) support, [WebRTC](https://expo.canny.io/feature-requests/p/webrtc), [Bluetooth](https://expo.canny.io/feature-requests/p/bluetooth-api), or [something more esoteric](esoteric)).

EAS Build will let you use any compatible library from GitHub or npm or that you write yourself, even if it has native code in it.

EAS Build also lets you build smaller, stripped-down binaries that include only the code your application needs, which means a [smaller install size for your users](https://github.com/expo/fyi/blob/master/managed-app-size.md).

There's already early support for Expo managed apps in EAS Build in the preview, but it's not quite ready for production yet. There's also a big missing piece: how do you get a new version of your Expo development client app that includes your bespoke native runtime? We're working on this, and we'll have answers for you in the coming months.

These are some of the most common requests we hear from Expo developers today, so we're extremely excited to be close to getting a solution into your hands.

#EAS Submit
##Feature Preview
When you want to put your app into the App Store and Play Store, you can use a single command from your terminal or from CI to submit it.

When you run `eas submit`, your app binary will be uploaded to EAS and then submitted to the respective app store from there. This means fewer dependencies to install on your machine, and that you can submit your apps from your Windows, Linux, or macOS computer to any app store.

We guide you through your first submission and try to make your nth submission as easy as possible by catching common mistakes and giving you guidance on how to resolve them. For example, if you're missing a privacy policy, [we have an FYI for that](https://expo.fyi/missing-privacy-policy).

#Expo Application Services (EAS)
**_Expo_** is the open source project, and **_Expo Application Services_** offers hosted cloud services built for both Expo and React Native.

**You won't need EAS to use Expo**, which will always be open source and free. You can choose a different CI/CD service or use your own hardware.

Likewise, **you'll be able to take advantage of EAS with any React Native project, whether or not it uses Expo's open source tools**. EAS is designed for developers who specifically want their builds, updates and/or other parts of their app operations, development and collaboration workflows streamlined by a cloud service designed purposefully for and deeply integrated with React Native and Expo.

#How does EAS relate to the Expo services that I'm already using for builds, updates, and notifications?
We don't want to disrupt anyone who is counting on Expo services to make software, and so we'll continue to operate the existing build, update, and notification services indefinitely. So, if you're happy with the way you're using those services now, you don't need to do anything differently and you can continue using them.

To reduce confusion with EAS versions of the services, we're going to start calling the existing free services the "Classic" Expo services. So, "Classic" Build, Updates, and Notifications.

That said, EAS is where most of our investment and effort on the services side will go in the future, so you should expect to see each EAS service keep getting better, more powerful, and easier to use as time goes on. Keep an eye out for the EAS Update preview, launching in early 2021.

#How much will EAS services cost to use?
We'll always maintain a free tier that can meet the needs of individual and hobbyist developers building small apps. We'll announce further pricing details closer to the date when EAS services graduate from preview in 2021.

#If I'm already an Expo Developer Services subscriber, how does this affect me?
If you're currently paying for Expo Developer Services, we've automatically updated your plan to EAS Priority Plan. EAS Priority will have the same price point and feature set as your old Developer Services plan, plus preview access to EAS Build and Submit. You don't need to do anything: you'll be moved over automatically.

#How can I try EAS Build and Submit right now?
The previews of EAS Build and Submit are available to developers subscribed to the [EAS Priority Plan](https://expo.io/pricing). If you're not yet a subscriber, you can [try it out for free for a month](https://expo.io/pricing). If you want to try the preview services out but don't have access to a credit card, please reach out to us [on Twitter](https://www.twitter.com/expo) and we can help you out.

Once you're signed up, you can find everything that you need to know in the [Feature Preview documentation](https://docs.expo.io/eas). If you'd like to watch a quick video walkthrough of EAS Build and Submit, check out this YouTube video:

{% youtube 7E6zsRpfT4U %}