读懂eas.json:expo-react-native-cicd中dev、prod-apk、prod-aab三大构建Profile配置详解

发布时间:2026/8/22 16:06:51
读懂eas.json:expo-react-native-cicd中dev、prod-apk、prod-aab三大构建Profile配置详解 读懂eas.jsonexpo-react-native-cicd中dev、prod-apk、prod-aab三大构建Profile配置详解【免费下载链接】expo-react-native-cicd Free alternative to Expo EAS builds! Complete CI/CD pipeline for React Native Expo apps using GitHub Actions. Save $100s monthly with unlimited builds, automated testing, and flexible deployment options.项目地址: https://gitcode.com/gh_mirrors/ex/expo-react-native-cicdexpo-react-native-cicd是一个基于 GitHub Actions 的免费 React Native / Expo CI/CD 构建工具帮你摆脱 EAS Build 付费套餐实现不限量构建。而整个流水线的心脏就是项目根目录下的eas.json 构建 Profile 配置——dev、prod-apk、prod-aab三种 Profile 分别决定了构建出什么样的产物。本文带你 10 分钟读懂这三份配置一次配好终身受益。上图为项目内置示例应用example-todo-app的应用图标它会被打包进 dev、prod-apk、prod-aab 三种构建产物中eas.json 与构建 Profile 是什么如果把 CI/CD 流水线比作一条流水线工厂eas.json就是生产配方表。EAS CLI 在每次执行eas build时都会根据--profile参数去eas.json的build字段里找到对应名称的配置块决定构建哪个平台、哪种打包格式APK 还是 AAB是否是开发调试版本版本号如何自动递增在 expo-react-native-cicd 的工作流中每次构建命令都形如eas build --platform android --profile 名称 --localProfile 名称必须与 eas.json 中的 key 完全一致否则构建会直接失败。你可以参考项目提供的完整示例配置sample-config/sample.eas.json。dev开发调试 ProfiledevelopmentClient在eas.json中dev构建对应的通常是developmentProfiledevelopment: { developmentClient: true, distribution: internal }两个关键字段的含义字段作用通俗理解developmentClient: true生成开发者客户端不签名上架只能装在自己的开发机上支持调试、断点、实时日志distribution: internal内部分发模式不要求完整的发布签名流程快速出包适合场景日常开发自测、团队内部 QA 走查。它构建速度快、体积小是迭代阶段的主力。在 examples/generalized-workflow.yml 中对应步骤会把产物保存为app-dev.apk并以NODE_ENV: development环境变量运行。prod-apk生产 APK Profile直接安装版prod-apk对应的是可直接安装到手机的正式安装包production-apk: { autoIncrement: true, android: { buildType: apk } }三个要点buildType: apk输出单个.apk文件双击即装适合侧载sideload、内部测试、线下分发autoIncrement: true每次构建自动递增versionCode你无需手动改版本号这是 CI 场景的强烈建议项不带 developmentClient这是正式包用户行为与商店版一致工作流中该 Profile 会输出app-prod.apk见 examples/generalized-workflow.yml。prod-aab生产 AAB Profile商店上架版prod-aab对应输出Android App Bundle.aab格式这是 Google Play 上架的强制要求production: { autoIncrement: true, android: { buildType: app-bundle } }APK 与 AAB 的核心区别对比项prod-apkAPKprod-aabAAB文件形式单文件可直接安装容器格式不能直接安装上架方式侧载、官网下载Google Play 商店体积优化全量包含所有资源商店按设备拆分下载更小适用场景内测、线下分发正式上架在 examples/generalized-workflow.yml 中该 Profile 输出app-prod.aab如果配置了 Play 商店凭据工作流还会执行eas submit -p android --path ./app-prod.aab自动提交上架。自适应图标adaptive icon素材在 AAB 构建中会被自动处理为不同尺寸的图标资源三种 Profile 如何被工作流触发expo-react-native-cicd 的工作流提供了多种触发方式构建类型选择如下参考 examples/generalized-workflow.ymlPush 到 main 分支自动构建全部产物dev prod-apk prod-aab手动触发Run workflow在 Actions 面板下拉选择all/dev/prod-apk/prod-aab按需构建省时省资源Pull Request只跑测试检查TypeScript、ESLint、Prettier不产出安装包构建完成后产物会按版本号-时间戳归档到 GitHub Artifacts 或你选定的云存储Google Drive、Zoho Drive 等例如app-prod-apk-1.2.3-202608211500.apk。新手最容易踩的 3 个坑Profile 名称对不上工作流写--profile production-apk但 eas.json 里 key 是prod-apk构建直接报 profile not found。名称必须逐字一致。忘记autoIncrementCI 环境下如果不用远程版本管理appVersionSource: remote务必打开自动递增否则商店提审时会遇到versionCode 不高于线上版本的错误。把 dev 包发给用户developmentClient 包在普通手机上无法正常运行分发给用户请一定用prod-apk或prod-aab。相关文件资源想动手实践的话这些文件值得打开看看完整配置示例sample-config/sample.eas.json主工作流模板含三种 Profile 构建命令examples/generalized-workflow.ymlGitHub Releases 分发模板examples/github-release-draft-pr-workflow.ymlGoogle Drive 分发模板examples/zoho-drive-workflow.yml各组合的 400 种预生成工作流examples/示例应用含完整 app.json 与图标素材sample-apps/example-todo-app/官方文档说明docs/README.md总结Profile产物一句话定位devapp-dev.apk开发自测用速度快prod-apkapp-prod.apk可直接安装的正式包prod-aabapp-prod.aabGoogle Play 上架专用理解了eas.json中这三个 Profile 的职责分工你就掌握了 expo-react-native-cicd 自由组合构建的钥匙需要哪个包就触发哪个 Profile全部免费、不限量。现在就可以打开 examples/generalized-workflow.yml把它复制到你的项目里跑一次试试 【免费下载链接】expo-react-native-cicd Free alternative to Expo EAS builds! Complete CI/CD pipeline for React Native Expo apps using GitHub Actions. Save $100s monthly with unlimited builds, automated testing, and flexible deployment options.项目地址: https://gitcode.com/gh_mirrors/ex/expo-react-native-cicd创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考