Expo项目迁移至EAS:eas.json是否替代app.json及配置疑问
从expo build迁移至EAS Build的配置说明
一、eas.json的核心配置内容
eas.json主要用来定义构建/提交的不同环境配置(profile),核心结构包含两大部分:
build:定义各环境的构建参数,常见配置项:- 指定构建平台(
ios/android/all) - 设置构建时的环境变量(
env字段) - 自定义构建命令(
buildCommand) - 证书获取策略(
credentialsSource,可选local/remote) - 增量构建开关(
incremental) - 开发客户端专属配置(
developmentClient)
- 指定构建平台(
submit:配置应用商店提交的参数,比如iOS的Apple ID、Android的密钥库信息等
举个简单的dev和prod配置示例:
{ "build": { "development": { "developmentClient": true, "distribution": "internal", "ios": { "simulator": true } }, "production": { "distribution": "store", "ios": { "resourceClass": "m1-medium" } } }, "submit": { "production": { "ios": { "appleId": "your-apple-id@example.com", "ascAppId": "123456789" } } } }
二、eas.json不会替代app.json
你必须保留app.json,它是Expo项目的基础配置文件,EAS Build会依赖它读取以下核心信息:
- 应用名称、slug、版本号、构建号
- 图标、启动页的资源路径
- iOS/Android的平台专属配置(比如权限、包名/bundle ID)
eas.json只是用来补充构建流程的专属配置,和app.json各司其职,不存在替代关系。
三、对app.config.js的影响
app.config.js作为动态配置文件,迁移到EAS后完全可以保留,影响极小:
- EAS会像读取app.json一样解析app.config.js输出的配置内容
- 如果之前用app.config.js动态生成版本号、环境变量、平台配置,这些逻辑不需要修改
- 若需要根据不同的EAS构建profile调整配置,可以通过读取环境变量
EAS_BUILD_PROFILE来实现动态适配
内容的提问来源于stack exchange,提问作者TreyCollier
相关产品推荐
相关产品推荐

