如何为iOS和Android编写Expo的eas.json配置文件?
同时构建iOS和Android时eas.json的正确配置方式
你不确定同时为iOS和Android构建时eas.json的配置内容,怀疑构建错误源于配置问题,并且尝试合并了iOS和Android的配置,想确认是否正确。
你提供的单独配置示例
iOS 单独配置
{ "cli": { "version": ">= 5.7.0" }, "build": { "development": { "developmentClient": true, "distribution": "internal" }, "preview": { "distribution": "internal", "ios": { "enterpriseProvisioning": "universal" } }, "production": {} }, "submit": { "production": {} } }
Android 单独配置
{ "build": { "preview": { "android": { "buildType": "apk" } }, "preview2": { "android": { "gradleCommand": ":app:assembleRelease" } }, "preview3": { "developmentClient": true }, "production": {} } }
你尝试的合并配置
{ "cli": { "version": ">= 5.7.0" }, "build": { "development": { "developmentClient": true, "distribution": "internal" }, "preview": { "distribution": "internal", "ios": { "enterpriseProvisioning": "universal" }, "android": { "buildType": "apk" } }, "preview2": { "android": { "gradleCommand": ":app:assembleRelease" } }, "preview3": { "developmentClient": true }, "production": {} }, "submit": { "production": {} } }
配置正确性确认及补充说明
你的合并配置是完全正确的,这种写法符合EAS Build的配置规范:
- 同一构建环境(如
preview)下,通过ios和android字段分别为两个平台指定专属配置,公共配置(如distribution)直接放在环境层级即可,会同时作用于两个平台。 cli字段只需在根节点声明一次,无需重复配置。submit字段用于配置应用提交到应用商店的参数,保持根节点配置即可。
避免构建错误的额外注意事项
- 确保
cli.version与你本地安装的EAS CLI版本兼容,不要指定过高或过低的版本范围。 - 对于Android的
gradleCommand,只有当默认构建命令不满足需求时才需要自定义,否则保持默认即可减少出错概率。 developmentClient: true会构建带开发工具的客户端,该配置对iOS和Android都生效,无需单独为平台配置。- 生产环境(
production)如果需要平台专属配置,也可以像preview一样添加ios和android子字段,比如指定iOS的签名配置或Android的构建变体。
内容的提问来源于stack exchange,提问作者learncode
相关产品推荐
相关产品推荐

