04
按证据落地:从 Beta 分支到可回退的构建记录
下面的流程把“能不能构建”与“能不能发布”分开,适用于先用 EAS 验证、之后按故障证据决定是否增加远程 Mac 的场景。
第一步:核对版本与工具链。
查看 Expo 最新发布记录,确认 SDK 58 当前究竟仍是 Beta,还是已转为稳定版;再检查 EAS 可用镜像与所含 Xcode 版本。若测试目标明确要求某个 Xcode 或 iOS SDK,而所选 EAS 镜像不能满足,先不要把该构建结果当作目标环境验收。
第二步:冻结正式发布基线。
记录正式分支当前 SDK、锁文件、构建配置和凭据负责人。Beta 分支单独更新依赖,并设置能辨认的测试产物名称或标记;确认测试不会误触正式提交流程。App Store 提交是单独步骤,构建成功不代表已完成提交或审核,相关边界可对照 iOS 生产构建与提交说明。
第三步:先用 EAS 跑可复现的最小构建。
使用 Beta 专属 profile 启动 iOS 构建,保存提交标识、构建配置、选择的镜像和完整日志。若项目使用 CNG,还要确认生成的原生工程是否与当前依赖和配置一致;不要只截取成功或失败的最后一行。
第四步:按失败阶段决定是否升级排障环境。
先从日志判断问题落在依赖安装、CocoaPods、代码生成、签名还是 Xcode 编译。错误信息足够明确时,继续在 EAS 配置或项目依赖中修复;需要进入 Xcode 工程检查、手动执行命令或重复复现时,再考虑 macOS 本地环境或远程 Mac。不要为了“可能有用”就先增加一台需要维护的主机。
第五步:分别验收构建、签名和应用行为。
记录构建是否完成、产物能否按预期安装、关键功能是否通过测试,以及签名凭据是否与目标分发方式相符。提交 TestFlight 或 App Store 前,再核对正式分支和正式 profile;Beta 产物不得仅凭构建通过就替代正式发布产物。
使用托管凭据不等于凭据管理责任消失,使用远程 Mac 也不自动让凭据更安全。团队需要能够回答:谁有权更新签名材料,失败时由谁恢复环境,测试产物怎样与正式产物区分,日志在哪里保存,以及敏感字段如何脱敏。