Changelog

New updates and improvements to Expo and EAS.


Introducing Build Annotations

Dec 1, 2023 by

Avatar of Kadi Kraman

Kadi Kraman

A build annotation that highlights an invalid lockfile

Build logs can be difficult to parse and it can be even harder to find and resolve the root cause for those errors. To make build errors easier to resolve, we're introducing a feature that adds annotations to build errors that highlight reasons and fixes for commonly seen build errors. Build Annotations can be spotted on both build and submission logs.

So if your build or submission fails, look out for the blue speech bubble in your logs in case we have any suggestions on resolving it.

Speed up your development workflow with Automatic GitHub builds

Nov 29, 2023 by

Avatar of Juwan Wheatley

Juwan Wheatley

GitHub build trigger hero image

When you want to build a preview version of your app to test out some changes, it can be tedious to manually go through the process of running EAS CLI to build your app after pushing or pulling down the latest changes from your repository. You have to find the right branch or tag to pull down, install EAS CLI, log in, choose the right build profile, and run the build command locally.

With Automatic GitHub builds, we eliminate all of those manual steps. By setting up build triggers, your project is automatically built whenever you push updates to GitHub, ensuring that your latest builds are up to date with your codebase.

How to set up build triggers

The steps are simple. Just link a repository on expo.dev, add a build trigger, and push to your repository. If you've run a build on EAS before, this will be a smooth process. (If you haven't run a build you can learn how to create your first build here.)

GitHub build trigger form

You can customize build triggers for branches, pull requests, and Git tags. For example, running an iOS production build when main gets pushed or creating an Android development build when any pull request with a source branch matching feature/* gets updated.

We decided to develop and ship Automatic Github builds because we want developers focused on business logic and shipping beautiful applications, not developing and maintaining a complex CI/CD system.

This feature is now in preview for EAS subscribers, with general availability slated for 2024. There are many more improvements to come!

Learn more about how to get set up with our GitHub builds guide.

Expo Orbit v1: launcher app launched into orbit

Nov 14, 2023 by

Avatar of Gabriel Donadel

Gabriel Donadel

Expo Orbit for macOS makes it faster and easier to install and run builds from EAS or elsewhere, and to run Snack projects on simulators and physical devices.

Expo orbit menu bar app

The current process for installing builds from EAS (Android device/emulator, iOS simulator, iOS device) and running Snack projects on simulators is more manual than it needs to be. You can use eas build:run and select a build for Android devices/emulators or iOS simulators, or you can download the archive, extract it, and drag and drop it to the simulator/emulator. For Snack projects, additional steps include installing Expo Go in the simulator through the CLI, logging in, and selecting the Snack from a list.

To improve this, in August 2023 we released Orbit as an experiment intended to speed up development builds and Snack projects. The goal was to make these steps as seamless as possible, aligning with the user-friendly experience that Expo offers. The community feedback was very positive and we decided to move forward with this project.

What is Expo Orbit v1 and what are the benefits?

Expo Orbit v1 is a macOS menu bar app designed to make your development workflow even faster, allowing you to:

  • List and launch simulators, including the ability to run Android emulators without audio

Orbit list and launch simulators

  • Install and launch builds from EAS to your simulators and real devices with just one click

Orbit install and launch builds from EAS

  • Launch Snack projects in your simulators by clicking a button

Orbit launch Snack projects

  • Install and launch apps from local files using Finder or just drag and drop a file into the menu bar app. Orbit supports any Android apk, simulator compatible .app, or ad-hoc signed apps

Orbit install and launch apps from local files

  • See pinned projects and quickly launch your latest builds

Orbit list pinned projects

Get started with Expo Orbit

You can download Orbit via Homebrew or directly through GitHub.

brew install expo-orbit

At this point in time, Orbit is compatible only with macOS but we have exciting plans to integrate it further into the Expo ecosystem and add even more features.

Try out Expo Orbit now, explore its capabilities, and share your feedback. Your input will shape the future of this tool and guide us on where to take it next.

EAS Build: Upgrading default Node.js version from 16 to 18 on November 27th, 2023

Nov 3, 2023 by

Avatar of Brent Vatne

Brent Vatne

One month ago, on September 11th, Node 16 reached end-of-life and it no longer receives any form of support. For that reason, effective November 27th, 2023, we will migrate the default Node version from 16 to 18 on all EAS Build images. We have already updated the latest image accordingly.

In the process of doing the Node.js upgrade, we will also drop our Ubuntu 18 images, because they do not support Node 18. The lowest available Ubuntu version will be 20.

The default Node version on EAS Build tracks the current maintenance LTS (see: Node.js releases). This is common practice for similar hosted services.

What do you need to do?

If you aren’t ready to make any changes yet and want to ensure that you remain on Node 16 after the effective date of the upgrade: you can explicitly lock your builds to Node 16 by adding the following to your build profiles: "node": "16.18.1".

To prepare your app for the upgrade (recommended), you can do the following:

  • Use Node 18+ locally: It’s likely that your project already runs on Node 18 or higher — most developers are already using a recent version on their local machines. If not, update to Node 18 or greater on your local development machine, then ensure your dependencies install successfully and your app runs.
  • Opt in early to Node 18 on EAS Build
    • Set "image": "latest" on your build profiles, or, alternatively, "node": "18.18.0" to install Node 18 on your currently used image.
  • Switch to Ubuntu 20+ for Android builds on EAS Build
    • Ubuntu 18 is used by default on SDK 45 (released May 5, 2022, it includes React Native 0.67) and older, so you are likely already using Ubuntu 20+ for your Android builds — unless you explicitly specify ubuntu-18.04-jdk-8-ndk-r19c or ubuntu-18.04-jdk-11-ndk-r19c as your build image.
    • If you haven’t specified an image and you want to know which is used for your project: find a recent build and look at the “Spin up build environment phase” - you will find a log similar to Using image "ubuntu-20.04-jdk-11-ndk-21.4.7075529" based on "ubuntu-2004-focal-v20220823".

What happens if you don’t take any action?

Most apps are unlikely to experience any issues as a result of this change; however, in some cases, projects may not build. For example, you may encounter dependencies that are incompatible with Node 18.

To keep your builds green, we encourage developers to either lock down the Node version, or prepare for the change / opt-in early, as suggested above.

If you are still unsure how to proceed, we recommend you ask questions in our 💬 Discord community.

Refreshed Sidebar Navigation in Dashboard

Oct 26, 2023 by

Avatar of Tomasz Czajecki

Tomasz Czajecki

Sidebar

We released a new version of our dashboard's sidebar. You can access your accounts and projects from there, as well as the user menu, now located at the bottom of the sidebar (previously in the top right corner of the page).

More

Fix for CVE-2023-4863 in expo-image@1.3.4

Sep 29, 2023 by

Avatar of Brent Vatne

Brent Vatne

Xcode 15 and iOS 17

Sep 28, 2023 by

Avatar of Brent Vatne

Brent Vatne

Support for Bun in EAS and Expo CLI

Sep 25, 2023 by

Avatar of Kadi Kraman

Kadi Kraman

Introducing Notification Center

Sep 12, 2023 by

Steven Songqi Pu

Pinning Projects in Dashboard

Aug 25, 2023 by

Avatar of Tomasz Czajecki

Tomasz Czajecki

Preview: fully customizable builds on EAS Build

Aug 10, 2023 by

Avatar of Szymon Dziedzic

Szymon Dziedzic

Understand your users and grow your app with EAS Insights

Aug 22, 2023 by

Avatar of Chris Walter

Chris Walter

Proof of concept: expo-sqlite integration with CR-SQLite

Aug 10, 2023 by

Alan Hughes

Proof of concept: Expo CLI Dev Tools Plugins

Aug 10, 2023 by

Avatar of Kudo Chien

Kudo Chien

Expo Orbit: Download and launch builds

Aug 9, 2023 by

Avatar of Gabriel Donadel

Gabriel Donadel

Rollouts for EAS Update

Aug 8, 2023 by

Avatar of Quinlan Jung

Quinlan Jung

useUpdates() API for expo-updates

Aug 8, 2023 by

Avatar of Doug Lowder

Doug Lowder

Single Sign-On (SSO)

Aug 8, 2023 by

Avatar of Will Schurman

Will Schurman

New Dashboard Tables and More Timeline Activities

Aug 2, 2023 by

Avatar of Tomasz Czajecki

Tomasz Czajecki

Enforcement of EAS Free plan limits

Aug 1, 2023 by

Avatar of Chris Jensen

Chris Jensen

Expo VS Code theme

Jul 24, 2023 by

Avatar of Bartosz Kaszubowski

Bartosz Kaszubowski

Link your GitHub repo with Expo

Jul 19, 2023 by

Avatar of Juwan Wheatley

Juwan Wheatley

Improved Expo Docs organization

Jul 5, 2023 by

Avatar of Aman Mittal

Aman Mittal

App.js 2023

May 3, 2023 by

Avatar of Jon Samp

Jon Samp

Changes summary Q4 2022

Jan 31, 2023 by

Avatar of Jon Samp

Jon Samp