与你的团队分享预览

了解如何使用 EAS Update 发送 OTA 更新并与团队共享预览。


更新通常会修复小错误并在应用商店版本之间推送小更改。它们允许更新示例应用的非原生部分,例如 JavaScript 代码、样式和图片。

¥Updates generally fix small bugs and push small changes in between app store releases. They allow updating the non-native parts of our example app, such as JavaScript code, styling, and images.

在本章中,我们将使用 EAS 更新 与我们的团队共享更改。这将有助于 我们和我们的团队快速分享预览 的改变。

¥In this chapter, we'll use EAS Update to share changes with our team. This will help us and our team quickly share previews of the change.

Watch: How to share previews with your team
Watch: How to share previews with your team

1

Install expo-updates library

To initialize our project and send an update, we need to use the expo-updates library. Run the following command to install it:

!!!IG2!!!

2

Configure EAS Update

To initialize our project with EAS Update, we need to follow these steps:

  • Since we are using dynamic app.config.js for our app's configuration, adding updates and runtimeVersion properties are required to make our project compatible with EAS Update. Run the following command to obtain these properties and their values from EAS and manually copy them to app.config.js:

!!!IG3!!!

What about non-dynamic (app.json) projects?

If a project doesn't use dynamic app config (uses app.json instead of app.config.js), the above command will configure our app to be compatible with EAS Update and add the right properties to app.json and eas.json.

  • Re-run eas update:configure to continue with the setup process. A channel should be added to every build profile in eas.json:

!!!IG7!!!

!!!IG0!!!

Notice that the eas update:configure command adds the channel to every build profile in eas.json. However, our ios-simulator profile extends the development profile and having a separate channel doesn't make sense. We can safely remove ios-simulator.channel from the above configuration.
What is a channel?

Channels are used to group builds together. If we have an Android and iOS build, both on the app store, we can give them both a channel of production. Later, we can tell EAS Update to target the production channel, so our update will affect all builds with a production channel.

3

Create a development build

We need to create a new development build since our last build doesn't contain the expo-updates library. Run the following command:

!!!IG4!!!

We are using a development build for Android devices to demonstrate updates. However, we can use --platform all or --platform ios to create a build for both platforms or just for iOS.

After the new version of the development build is created, make sure to install it on a device.

4

Modify the JavaScript code of the app

Let's modify our example app's JavaScript code. If you are not using Sticker Smash app, you can modify any piece of your code to see the changes in the app.

We'll modify the text of the first button in our example app that says Choose a photo to Select a photo.

!!!IG1!!!

5

Publish an update

Instead of creating a new build to share this change with our team for testing, let's publish an update:

!!!IG5!!!

In the command above, we used the development branch. Every update is associated with an update branch. It is similar to every commit that we make with git, which is associated with a git branch.

By default, EAS will map branches and channels with the same name, if no other mapping has been specified. So, by using the channel development in our build profile and then publishing an update on the development branch, we're asking EAS to deliver this update to builds with the development channel. When we make an EAS Update branch, we can map it to a channel.

After the update is published, the CLI will prompt us with information about it.

Click on the Website link to see the Update on the Expo dashboard under Updates:

6

Preview the update live in a development build

To preview the live update in a development build:

  • Log in to your Expo account within the development build.
  • Open the Extensions tab.
  • Look for Branch: development listed under EAS Update.
  • Tap on Open to access the update.

7

Sharing changes with preview or production builds

Updates for non-development builds (preview or production) are automatically downloaded to the device when the app starts up and makes a request for any new updates.

Any team member running the preview or production build will receive the update with the changes we push to those specific branches.

For example, for a preview build, we can run:

!!!IG6!!!

Here is an example where we've published an update for the preview build. To test the update, force close and reopen the app twice to download and view the changes:

Summary

Chapter 10: Share previews with your team

We successfully configured EAS Update to manage and publish over-the-air updates across platforms, and explored methods to fetch updates to review.

In the next chapter, learn about the process of triggering builds from a GitHub repository.

Next: Trigger builds from a GitHub repository