说到移动应用的持续集成与持续交付(CI/CD),Fastlane 这个工具相信大多数开发者都不陌生。它几乎能够覆盖从代码构建、单元测试、屏幕截图,到多渠道分发、元数据管理,以及最终的 IPA/APK 包上传和 App Store 审核提交等全流程任务。简单来说,它可以将“从代码到上线”这一整套繁琐流程转化为自动化脚本,让应用发布变得更快速、更稳定。
目前,Fastlane 2.231.0 版本已经正式发布。这次更新内容相当丰富,涵盖了大量功能增强、问题修复以及底层依赖升级。下面我们重点介绍几个关键变化。
和以往一样,我们直接来看变更日志:
首先是核心架构层面的优化。此次将配置项 ruby_min 中的“VERSION”字样移除,属于一次代码清理。此外,还新增了一项非常实用的体验改进——当检测到不兼容的 Ruby 版本时,控制台会直接给出明确的警告提示。这相当于在系统前端为用户增加了一层防护,避免在执行时因环境问题而报错,值得点赞。
在测试与扫描方面,scan 组件修复了在 Xcode 26 环境下测试执行失败的问题。对于紧跟最新开发工具链的团队来说,这无疑是一个“救场级”的修复。另外,针对 iOS + Mac Catalyst 混合项目,snapshot 也解决了一个设备配置被意外覆盖的棘手问题。坦白讲,混合项目的配置管理一直是容易踩坑的地方,这次修复精准地排除了隐患。
在接口与平台支持方面,有几个值得关注的点。increment_build_number 现在新增了对 XROS(即 Xcode Cloud 和 Xcode Run on Simulator 平台)的支持;upload_to_app_store.rb 中也集成了 xros 支持。同时,spaceship 新增了 Webhook Integration API 接口支持,并强化了对 SIRP API 调用的容错处理。这几项更新加在一起,意味着 Fastlane 的自动化能力已经进一步扩展到苹果最新的开发环境中,跨平台适配性更加完善。
另外,spaceship 还增加了对传统 SRP 认证方式(即 legacy 2sk_fo 类型)的登录兼容性。对于一些仍在使用旧认证流程的团队,这条更新可以减少迁移或并行使用新旧工具时的摩擦。
在证书管理方面,spaceship 和 match 联手修复了 Developer ID Application G2 类型证书筛选逻辑异常的问题。证书筛选的 bug 如果不及时修复,很容易导致发布时签名出错,这次修复非常及时。
还有几项底层升级值得注意:xcodeproj 从 1.22.0 升级到了 1.27.0,构建系统全面兼容 Bundler v4。这些依赖层面的更新看似低调,但往往能带来更快的构建速度和更少的兼容性问题。
快速过一下其他小改进:模拟器状态栏时间显示格式统一改为 HH:MM,不再使用 ISO8601 的长格式;文档中清理了残留的 Google 相关 IMAGE_GUIDELINES 条目;get_version_number 动作的 target 识别逻辑进行了优化;produce 命令行生成器中新增了“声明年龄分级”参数选项。
CI 与构建流程方面,这次也做了不少维护性调整:移除了已废弃的 Slack Train 插件,清理了未启用或废弃的发布通道,恢复了自动化流水线中的 SLACK_URL 配置项,并在 GitHub Actions 中启用了 pull-requests.yml 工作流以支持 PR 的自动化验证。另外,还通过重命名策略降低了编译时的命名冲突风险。这些虽然是底层优化,但对团队的日常开发效率有实实在在的帮助。
总体来看,Fastlane 2.231.0 这次更新补丁不少,功能点也多。尤其是在 Xcode 新平台适配、Ruby 兼容性提示以及多种认证方式的兼容性方面,下了不少功夫。对于已经在使用 Fastlane 的团队来说,非常值得升级。
