Skip to main content

Why upgrades are necessary

To enable new capabilities and ensure compatibility with our mobile app, you need to upgrade your a0 project periodically. Our mobile app only supports the latest version of a0 so you need to update inorder to test your app.

Runtime version and Expo SDK

a0 projects are built on top of Expo. In a0, you’ll see a setting called runtime version, which is based on the Expo SDK version. When we upgrade a0 versions, the runtime version (and underlying Expo SDK version) in your project is also upgraded. The runtime version determines which Expo APIs, modules, and features are available to your app. The latest a0 version uses Expo SDK 54 as of 11/18/25.

Understanding runtime versions

Each runtime version includes:
  • Core Expo modules: Camera, Location, Notifications, and other built-in capabilities
  • React Native version: The underlying React Native framework version
  • Native module support: Compatibility with native iOS and Android modules
  • API availability: Which Expo APIs you can use in your project

How runtime version upgrades work

When you upgrade your a0 project:
  1. Runtime version updates: Your project’s runtime version is upgraded to match the latest supported version
  2. Package versions change: All Expo-related packages are updated to versions compatible with the new runtime version
  3. React Native may update: The underlying React Native version may change to match the Expo SDK requirements
  4. Native modules update: Native iOS and Android modules are updated to work with the new runtime version

When to upgrade

The preview on the website will prompt you when it’s time to upgrade your project. You won’t be able to create new builds without upgrading to the latest version of a0.

How to upgrade

Upgrade from the UI prompt

When an upgrade is available, you’ll see a prompt in the UI. Simply follow the on-screen instructions to upgrade your project.
The upgrade prompt will appear automatically when a new version is available and your project needs to be updated.

Upgrade from Build Settings

You can also manually upgrade your runtime version from the Build Settings tab:
  1. Navigate to your project’s Build Settings tab
  2. Find the Runtime version section
  3. Select the latest available runtime version
  4. Save your changes
You can only switch between the runtime version that was the latest when your project was created and the latest version. Intermediate runtime versions are not available for selection.

Over-the-air updates

Over-the-air (OTA) updates allow you to push code changes to your app without requiring users to download a new version from the app store. However, there’s an important limitation to understand.

OTA update limitations

Over-the-air updates only work within the same runtime version that your app was built on. This means:
  • Code changes: You can push JavaScript and asset updates via OTA within the same runtime version
  • Version upgrades: You cannot upgrade the runtime version using OTA updates
  • New builds required: To get all users on the latest runtime version, you must release a new build to the App Store or Play Store
OTA updates are great for quick bug fixes and feature updates, but they cannot change the underlying runtime version.

When to release a new build

You’ll need to create and release a new build to app stores when:
  • You’ve upgraded your project to a new runtime version
  • You change your projects build settings like App Icon or permissions,
If you upgrade your project to a new runtime version but don’t release a new build, users with older app versions won’t receive your over-the-air update.

Why your app might be different after upgrading

If you notice changes in your app’s functionality after upgrading, this is expected behavior. When we upgrade versions, the runtime version and the versions of packages in your app change, which can introduce changes in functionality. The runtime version upgrade is a significant part of this process, as it updates the core framework your app runs on, including React Native and all Expo modules.
Package version updates often include bug fixes, performance improvements, and new features that enhance your app’s capabilities.
Breaking changes or significant behavioral tweaks may require you to update your code to maintain the same functionality. Always test your project after upgrading it and make changes as necessary.