从经典更新迁移
帮助从经典更新迁移到 EAS 更新的指南。
SDK 49 是支持经典更新的最后一个版本。要继续使用已弃用的expo publish
命令,请在应用配置中设置updates.useClassicUpdates
。
EAS Update 是 Expo 的下一代更新服务。如果你使用经典更新,本指南将帮助你升级到 EAS 更新。
¥EAS Update is the next generation of Expo's updates service. If you're using Classic Updates, this guide will help you upgrade to EAS Update.
先决条件
¥Prerequisites
EAS 更新需要以下版本或更高版本:
¥EAS Update requires the following versions or greater:
-
Expo SDK >= 45.0.0
-
Expo CLI >= 5.3.0
-
EAS CLI >= 0.50.0
-
expo-updates >= 0.13.0
安装 EAS CLI
¥Install EAS CLI
1
Install EAS CLI:
-
npm install --global eas-cli
2
Then, log in with your expo account:
-
eas login
Configure your project
You'll need to make the following changes to your project:
1
Initialize your project with EAS Update:
-
eas update:configure
After this command, you should have two new fields in your app config at expo.updates.url
and expo.runtimeVersion
.
2
To ensure that updates are compatible with the underlying native code inside a build, EAS Update uses a new field named runtimeVersion
that replaces the sdkVersion
field in your project's app config. Remove the expo.sdkVersion
property from your app config.
3
To allow updates to apply to builds built with EAS, update your EAS Build profiles in eas.json to include channel
properties. These channels replace releaseChannel
properties. We find it convenient to name the channel
after the profile's name. For instance, the preview
profile has a channel
named "preview"
and the production
profile has a channel
named "production"
.
{
"build": {
"development": {
"developmentClient": true,
"distribution": "internal"
},
"preview": {
"distribution": "internal",
"channel": "preview"
},
"production": {
"channel": "production"
}
}
}
4
Optional: If your project is a bare React Native project, see Use EAS Update in an existing project for the extra configuration you may need.
Create new builds
The changes above affect the native code layer inside builds, which means you'll need to make new builds to start sending updates. Once your builds are complete, you'll be ready to publish an update.
Publish an update
After making a change to your project locally, you're ready to publish an update, run:
-
eas update --channel [channel-name] --message [message]
# Example
-
eas update --channel production --message "Fixes typo"
Once published, you can see the update in the Expo dashboard.
Additional migration steps
- Replace instances of
expo publish
witheas update
in scripts. You can view all the options for publishing witheas update --help
. - If you have any code that references
Updates.releaseChannel
from theexpo-updates
library, replace them withUpdates.channel
. - Remove any code that references
Constants.manifest
. That will now always returnnull
. You can access most properties you'll need withConstants.expoConfig
from theexpo-constants
library.
Learn more
The steps described above allow you to use a similar flow to Classic Updates. However, EAS Update is more flexible and has more features. It can be used to create more stable release flows. Learn how EAS Update works and how you can craft a more stable deployment process for your project and your team.
If you experience issues with migrating, check out our debugging guide. If you have feedback, join us on Discord
在 #update 通道中。
¥in the #update channel.