乐闻世界logo
搜索文章和话题

什么是Expo EAS?它包含哪些核心服务?

2月21日 16:08

Expo EAS (Expo Application Services) 是Expo官方提供的一套云服务,用于简化Expo应用的构建、提交和更新流程。EAS提供了从开发到部署的完整解决方案。

EAS核心服务:

  1. EAS Build(构建服务)

EAS Build是云端构建服务,可以构建Android APK/IPA和iOS IPA文件。

主要功能:

  • 云端构建,无需本地配置原生环境
  • 支持开发和生产两种构建配置
  • 自动处理签名和证书
  • 构建历史记录和日志查看
  • 并行构建支持

使用方法:

bash
# 安装EAS CLI npm install -g eas-cli # 配置EAS eas build:configure # 构建Android应用 eas build --platform android # 构建iOS应用(需要Apple开发者账号) eas build --platform ios # 构建开发版本 eas build --profile development --platform android
  1. EAS Submit(提交服务)

EAS Submit自动将构建好的应用提交到应用商店。

支持的平台:

  • Google Play Store
  • Apple App Store

使用方法:

bash
# 提交到Google Play eas submit --platform android --latest # 提交到App Store eas submit --platform ios --latest
  1. EAS Update(更新服务)

EAS Update允许通过OTA (Over-the-Air)方式更新应用,无需重新提交应用商店。

主要功能:

  • 即时推送更新
  • 支持回滚到之前版本
  • 细粒度的更新控制
  • 更新分组和发布策略

使用方法:

bash
# 创建更新 eas update --branch production --message "Fix bug" # 查看更新历史 eas update:list # 回滚更新 eas update:rollback --branch production

EAS配置文件:

在项目根目录创建eas.json配置文件:

json
{ "cli": { "version": ">= 5.2.0" }, "build": { "development": { "developmentClient": true, "distribution": "internal" }, "preview": { "distribution": "internal", "android": { "buildType": "apk" } }, "production": { "android": { "buildType": "app-bundle" }, "ios": { "autoIncrement": true } } }, "submit": { "production": { "android": { "serviceAccountKeyPath": "./google-service-account.json" }, "ios": { "appleId": "your-apple-id@email.com", "ascAppId": "YOUR_APP_STORE_CONNECT_APP_ID", "appleTeamId": "YOUR_TEAM_ID" } } } }

环境变量管理:

EAS支持在构建时注入环境变量:

bash
# 设置环境变量 eas secret:create --name API_KEY --value "your-api-key" # 在代码中使用 const apiKey = process.env.API_KEY;

最佳实践:

  1. CI/CD集成:将EAS Build集成到GitHub Actions或其他CI/CD流程中

  2. 版本管理:使用Git分支和EAS Update分支对应管理不同环境

  3. 构建优化:合理配置构建配置,区分开发和生产环境

  4. 监控和日志:定期查看构建日志,及时发现和解决问题

  5. 权限管理:为团队成员分配适当的EAS权限

限制和注意事项:

  • iOS构建需要Apple开发者账号和付费开发者计划
  • 构建时间取决于项目大小和服务器负载
  • 免费账户有构建次数限制
  • 某些原生功能可能需要额外配置

EAS大大简化了Expo应用的部署流程,使开发者能够更专注于应用开发本身。

标签:Expo