ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

告别手动改版本号:Mobile App Automizer自动版本管理原理解析(npm version + agvtool + versionCode)

告别手动改版本号:Mobile App Automizer自动版本管理原理解析(npm version + agvtool + versionCode) 告别手动改版本号Mobile App Automizer自动版本管理原理解析npm version agvtool versionCode【免费下载链接】mobile-app-automizerYou can automize iOS and Android apps build, upload and versioning processes via Mobile App Automizer CLI tool.项目地址: https://gitcode.com/gh_mirrors/mo/mobile-app-automizerMobile App Automizer 是一款开源的移动端应用自动版本管理 CLI 工具一条命令即可自动完成 iOS 与 Android 应用的版本号更新、构建和上传。本文深入解析它如何用npm version agvtool versionCode三大机制联动让package.json、Info.plist和build.gradle里的版本号永远保持一致彻底告别手动改版本号的烦恼 手动改版本号的三大痛点发一次正式包手动操作往往要改 4 个地方平台文件要改的字段Node 工程package.jsonversioniOSInfo.plistCFBundleShortVersionString展示版本号CFBundleVersion构建号Androidbuild.gradleversionName展示版本号versionCode构建号稍有不慎就会踩坑忘了versionCode1→ Google Play 直接拒绝上传忘了递增 iOS 构建号→ App Store Connect 校验失败三处版本号不一致→ 应用市场展示版本与实际包不符排查半天。Mobile App Automizer 的核心思路是只维护一个版本源头其余全部自动派生。⚡ 一键安装步骤3 步接入自动版本管理先安装 Node.js然后全局安装工具并运行交互式安装向导npm install -g mobile-app-automizer mobile-app-automizer --install安装向导会依次询问你 iOS / Android 的构建、上传配置其中第 13 个问题Do you want versioning?就是版本管理的总开关见 src/installer.js。你的回答会被写入工程根目录的.ma-automizer.js配置文件分别对应 iOS 和 Android 的version字段模板见 templates/config.js。 建议把.ma-automizer.js提交到仓库团队成员的构建配置才不会走样。 自动版本管理原理全解析整个版本逻辑集中在 src/version.js执行顺序是一个漂亮的链式反应第 1 步npm version 统一版本号源头工具首先根据命令行参数决定升级类型然后执行npm version只更新package.json且不创建 git tagnpm version patch --no-git-tag-version随后重新读取package.json拿到最新版本号作为后续所有平台同步的唯一事实来源见 src/version.js。第 2 步agvtool 同步 iOS 的 Info.plistiOS 侧连续执行两条 Xcode 自带命令见 src/version.jsagvtool new-marketing-version version把CFBundleShortVersionString设为package.json的新版本即用户看到的 1.2.4agvtool next-version -all为所有 Target 的CFBundleVersion自动 1。这一步很关键iOS 每次上传都要求构建号递增而这个自动递增的构建号后续会被读取出来用作 CDN 下载的buildNumber见 src/ios.js。第 3 步正则替换同步 Android 的 versionCodeAndroid 侧则直接对build.gradle做两次正则替换见 src/version.jsversionName替换为package.json的新版本号versionCode在原有数字基础上1保证 Google Play 上传校验通过。三处版本号由此在一次命令内全部对齐无需人工干预 ✨ 版本参数速查patch / minor / major 怎么选遵循语义化版本规范工具提供三种升级粒度仅production环境生效命令升级类型示例当前 1.2.3mobile-app-automizerpatch默认1.2.4mobile-app-automizer --minorminor1.3.0mobile-app-automizer --majormajor2.0.0两个前置条件仓库根目录必须有package.json版本源头版本管理只在 production 环境触发——源码中由if (env production)硬性把关--stage参数会直接跳过整个版本流程见 utils/utils.js 的环境判断避免测试包污染正式版本号。 版本管理与构建上传的完整流水线版本号更新完成后流水线才正式开始构建。完整执行顺序见 src/automizer.js更新版本号npm version → agvtool / versionCode ↓ iOS 构建xcodebuild archive exportArchive ↓ Android 构建gradlew assembleRelease ↓ 上传发布App Store / Google Play / 自有 CDN也就是说你只需敲一行mobile-app-automizer版本号、IPA、APK、上传链接就会依次产出。想看工具在后台执行的具体命令加上--verbose参数即可全程开盒。✅ 总结Mobile App Automizer 的自动版本管理可以浓缩为一句话以npm version为源用agvtool同步 iOS 双版本号用正则 1 保证 AndroidversionCode递增再借 production/stage 环境隔离确保测试包不影响正式版本。一条命令替代 4 处手工修改既消灭了上传被拒的尴尬也让发版流程变得可复制、可协作 【免费下载链接】mobile-app-automizerYou can automize iOS and Android apps build, upload and versioning processes via Mobile App Automizer CLI tool.项目地址: https://gitcode.com/gh_mirrors/mo/mobile-app-automizer创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表