React Native和Flutter如何接入Mobile App Automizer?跨平台项目发布自动化实战指南
【免费下载链接】mobile-app-automizerYou can automize iOS and Android app's build, upload and versioning processes via Mobile App Automizer CLI tool.项目地址: https://gitcode.com/gh_mirrors/mo/mobile-app-automizer
Mobile App Automizer是一个开源的移动端发布自动化工具:只需一行 CLI 命令,就能自动完成 iOS 和 Android 应用的构建(Build)、上传(Upload)与版本号管理(Versioning)。它原生支持 Native iOS/Android、React Native和Flutter项目,可以把你的应用一键发布到Apple App Store(TestFlight)、Google Play Store或你自己的CDN,彻底告别每次发版时的手动点鼠标和改版本号。
📦 Mobile App Automizer 能做什么?
传统发版流程里,开发者要手动执行 archive、导出 ipa、上传商店、修改 iOS 的CFBundleVersion和 Android 的versionCode……繁琐且容易出错。Mobile App Automizer 把这一切封装成一个配置文件加一条命令:
- ✅自动构建:iOS 走
xcodebuild,Android 走gradlew(源码见 src/ios.js、src/android.js) - ✅自动上传:App Store / TestFlight、Google Play、自建 CDN 三种渠道任选
- ✅自动版本管理:遵循语义化版本(patch / minor / major),同时更新 iOS 和 Android 的版本号(源码见 src/version.js)
- ✅环境隔离:production 与 stage(预发布)环境一键切换,支持 Firebase 配置文件自动替换
整个发布流程的调度逻辑非常精简,集中在 src/automizer.js:
更新版本号 → 构建 iOS → 构建 Android → 上传 iOS → 上传 Android
🚀 安装教程:三步完成环境配置
第一步:确保本机已安装 Node.js。
第二步:全局安装工具:
npm install -g mobile-app-automizer如果偏好源码方式,也可以从https://gitcode.com/gh_mirrors/mo/mobile-app-automizer克隆仓库后本地安装。
第三步:进入你的移动端项目目录(React Native 或 Flutter 仓库根目录),运行安装向导:
mobile-app-automizer --install安装向导是交互式问答(实现见 src/installer.js),它会依次询问:
- 是否构建 iOS 应用?生产/预发布 Scheme 分别是什么?
- 是否使用 Firebase?
- 是否上传 iOS 应用?选择 App Store 还是 CDN?填写 Apple 账号、Team ID、Bundle ID 等
- 是否构建 Android 应用?上传到 Google Play 还是 CDN?
- 是否启用版本号自动管理?
完成后,仓库根目录会生成一个配置文件.ma-automizer.js(模板见 templates/config.js)。它的默认值是基于常见工程结构设计的:
- iOS 默认指向
ios/目录,含 workspace、archive、ipa 导出路径 - Android 默认指向
android/目录,含app/build.gradle和 apk 输出路径
💡重要:请把这个配置文件提交到代码仓库,团队成员就能共享同一套发布配置。之后可随时手动修改。
⚛️ React Native 项目接入指南
React Native 项目开箱即用,因为工具默认路径与 RN 标准目录结构完全吻合:
| 配置项 | React Native 默认值 |
|---|---|
| iOS 根目录 | ios/ |
| Android 根目录 | android/ |
| Gradle 文件 | android/app/build.gradle |
需要确认的三点:
- Scheme 名称:RN 项目在
ios/下的 workspace 通常以应用名命名(如MyApp.xcworkspace),向导里填写的 Scheme 要与 Xcode 中一致 - Android 变体:工具会执行
./gradlew assembleRelease(生产)或assembleStaging(预发布)。如果你的 RN 项目使用 flavor(如staging),确认android/app/build.gradle中配置了对应 variant - Firebase(可选,仅 iOS):如果项目用到 Firebase,把
GoogleService-Info.plist、GoogleService-Info-production.plist、GoogleService-Info-stage.plist三个文件放到ios/firebase/目录,工具会在每次构建前根据所选环境自动替换生效文件
配置确认后,React Native 项目的 App Store 上传、Play 商店上传即可全部自动化。
🐦 Flutter 项目接入指南
Flutter 同样原生支持(android/与ios/目录结构与 RN 一致),接入时注意以下差异:
iOS 侧
- Flutter 项目的 workspace 通常位于
ios/Flutter.xcworkspace,在.ma-automizer.js中把workspace改为实际路径 - Scheme 一般就是你的应用名(可在 Xcode 中查看),生产与预发布可使用同一 Scheme 或分别配置
- 导出签名使用自动生成的
ios/exportOptions.plist(模板见 templates/exportOptions.js),配置了 Team ID 后无需手动处理证书选择
Android 侧
- 工具执行
./gradlew clean && ./gradlew assembleRelease构建 apk,构建产物路径在.ma-automizer.js的android.path.apk中配置,需与 Flutter 项目的实际输出路径对齐 - 上传 Google Play 需要借助 Gradle Play Publisher 插件(
./gradlew publishReleaseApk),在android/app/build.gradle中配置好即可
版本号侧
- 工具通过读取仓库根目录
package.json的version字段作为统一版本源:iOS 用agvtool同步 marketing version 和 build number,Android 自动改写build.gradle里的versionName并把versionCode+1(实现见 src/version.js) - 所以仓库根目录需要有
package.json(Flutter 项目可以新增一个只用于版本号的简单package.json)
⚡ 一行命令发布:日常实战命令清单
配置完成后,发版就只剩一条命令:
mobile-app-automizer这条命令默认以production 环境 + patch 版本号执行完整流程:版本号递增 → 双端构建 → 双端上传。
| 命令 | 用途 |
|---|---|
mobile-app-automizer | 生产环境发布,自动递增 patch 版本 |
mobile-app-automizer --stage | 预发布环境构建上传(跳过版本管理) |
mobile-app-automizer --minor | 次版本号升级(如 1.2.3 → 1.3.0) |
mobile-app-automizer --major | 主版本号升级(如 1.2.3 → 2.0.0) |
mobile-app-automizer --verbose | 打印底层执行的每条命令,便于排查问题 |
mobile-app-automizer --clean | 清理构建缓存,可加--ios或--android指定平台 |
💡
--stage非常适合 CI 中的夜间构建或测试包分发:构建产物上传后不会污染正式版本号。
📤 上传渠道怎么选?
Apple App Store / TestFlight
- 在 Apple ID 后台创建一个应用专用密码(app-specific password),填入配置
- 工具通过
xcrun altool完成 ipa 上传,提交到 TestFlight 审核
Google Play Store
- 在 Android Gradle 中集成 Play Publisher 插件
- 工具自动执行
./gradlew publishReleaseApk提交到 Play Console
自建 CDN
- 适合企业内部分发或快速灰度:在
.ma-automizer.js的cdn段落实现uploadIpa/uploadApk/uploadManifest三个上传函数即可 - iOS 侧工具会自动生成
manifest.plist外置安装清单(模板见 templates/manifest.js),并输出itms-services://下载链接,扫码即装
🧹 常见问题与新手提示
Q1:命令执行失败了,不知道卡在哪一步?
加--verbose重跑,可以看到工具在后台执行的原始命令(参数解析与命令执行见 utils/utils.js)。
Q2:iOS 构建报 scheme 找不到?
用 Xcode 打开ios/目录下的 workspace,核对 Scheme 名称大小写,与.ma-automizer.js中保持一致。
Q3:Flutter 项目为什么没有自动更新版本号?
检查仓库根目录是否存在package.json,且配置中ios.version/android.version为true。
Q4:配置错了想重新配置?
删除.ma-automizer.js后重新执行mobile-app-automizer --install即可,或直接手动编辑该文件(它只是一个普通的 JS 模块)。
Q5:构建缓存异常导致产物不对?
先执行mobile-app-automizer --clean清理双端缓存,再重新发布。
✅ 总结
Mobile App Automizer 把 React Native 和 Flutter 项目中最琐碎的发版环节——构建、上传、版本号管理——收敛为一个配置文件 + 一条命令。接入成本极低:npm全局安装、--install交互式配置、提交配置文件,之后每次发版只需敲下mobile-app-automizer。对于追求发版效率的跨平台团队来说,这是值得立刻上手的免费开源自动化方案。更多用法细节可参考仓库说明文档 README.md。
【免费下载链接】mobile-app-automizerYou can automize iOS and Android app's build, upload and versioning processes via Mobile App Automizer CLI tool.项目地址: https://gitcode.com/gh_mirrors/mo/mobile-app-automizer
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考