Expo EAS (Expo Application Services) 是Expo官方提供的一套云服务,用于简化Expo应用的构建、提交和更新流程。EAS提供了从开发到部署的完整解决方案。
EAS核心服务:
- 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
- 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
- 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;
最佳实践:
-
CI/CD集成:将EAS Build集成到GitHub Actions或其他CI/CD流程中
-
版本管理:使用Git分支和EAS Update分支对应管理不同环境
-
构建优化:合理配置构建配置,区分开发和生产环境
-
监控和日志:定期查看构建日志,及时发现和解决问题
-
权限管理:为团队成员分配适当的EAS权限
限制和注意事项:
- iOS构建需要Apple开发者账号和付费开发者计划
- 构建时间取决于项目大小和服务器负载
- 免费账户有构建次数限制
- 某些原生功能可能需要额外配置
EAS大大简化了Expo应用的部署流程,使开发者能够更专注于应用开发本身。