iOS 多 Target 打包、UAT/生产测试与上架 App Store 全流程指南

一、前置环境准备

1. 软硬件版本要求

  1. MacOS 系统:更新至最新正式版本
  2. Xcode:更新 App Store 内最新稳定版本

2. 项目代码仓库

Git 仓库地址:内部私有 Git 地址 本地项目根目录示例:~/Developer/app/项目根目录

3. Xcode 工程打开路径

工程相对路径:app/项目目录/mobile/swift/Apps/CPMS

二、本地模拟器调试流程

  1. 使用 Xcode 打开 CPMS 工程文件
  2. Target 选择:CPMS-Team(UAT 测试环境)
  3. 模拟器设备选择:iPhone 17
  4. 点击左上角运行按钮编译启动 App
  5. 核心功能自测流程
    • 新建测试账号完成注册
    • 添加充电桩设备
    • 校验定时任务相关逻辑

三、版本号升级修改步骤

  1. Xcode 左侧选中项目根节点 CPMS
  2. 右侧切换对应环境 Target:
    • CPMS-Team:UAT 测试环境
    • CPMS-EU:欧洲正式环境
    • CPMS-SG:新加坡正式环境
    • CPMS-ME:中东正式环境
  3. 进入「Build Settings」→「Versioning」分类
  4. 修改 Marketing Version 版本号,根据迭代需求递增(示例:1.2.2)

四、证书与描述文件管理规范

1. 证书管理后台地址

苹果开发者后台证书管理页:https://developer.apple.com/account/resources/profiles/list

2. 证书维护要求

  • 定期查看证书有效期,防止打包签名失败
  • 证书过期时登录开发者后台重新生成、更新配置文件

3. Xcode 证书配置

Xcode 开启自动管理证书,无需手动导入配置文件。

五、TestFlight 打包脚本操作(Makefile)

1. 打包前置通用命令

终端切换至项目根目录,依次执行:

bash

复制代码
# 安装打包所需工具依赖
make install-tools
# 导入签名证书配置
make install-certs
# 指定系统默认Xcode路径,执行后输入电脑开机密码(输入无显示,输完回车)
sudo xcode-select -s /Applications/Xcode.app/Contents/Developer

2. UAT 测试环境打包

打包脚本:

bash

复制代码
make testflight-cpms-team

UAT TestFlight 后台:苹果开发者后台对应团队测试页面

3. 各区域正式环境灰度测试包

bash

复制代码
# 新加坡环境测试包
make testflight-cpms-sg
# 中东环境测试包
make testflight-cpms-me
# 欧洲环境测试包
make testflight-cpms-eu

六、App Store 正式上架流程

  1. 各区域 TestFlight 内测版本全量测试通过后,执行正式发布
  2. 上架后台入口:App Store Connect 对应应用分发页面
  3. 操作步骤:页面切换至「分发」标签页,根据页面指引完成版本提交、审核、上线操作

七、文档说明

  1. 本文档覆盖 iOS 客户端本地调试、TestFlight 灰度打包、AppStore 正式发布完整流程
  2. 打包逻辑由项目根目录 Makefile 统一封装,不同环境通过 Target + make 命令区分
  3. MacOS、Xcode 版本、有效签名证书为打包硬性前置条件,版本过低 / 证书失效会引发编译、签名报错
相关推荐
黑化旺仔1 天前
【OC】Runtime:类元数据、加载初始化与消息派发
开发语言·macos·ios·objective-c
songgeb1 天前
iOS App支持设置RTL语言的实践
ios·swift·ui kit
软泡芙1 天前
【iOS】swift启动屏显示黑屏
ios
用户69371750013841 天前
当你向领导申请 AI 编程工具预算时,如果领导追问“能提效多少,有量化数据吗”,你该怎么回答?
android·后端·ios
Layer1 天前
一些脱离 Mac 依赖的 Agent 操作 iPhone 实现
ios·ai编程·测试
用户69371750013841 天前
当我说 Claude 搭配 GLM-5.3-Flash 太好用了,同事却提醒我:你可能正在失去对代码的掌控
android·后端·ios
茶底世界之下1 天前
一键裁方会丢掉什么?用 Awaking 给园林照片做两种画幅
ios
Marco_Marco1351 天前
定位SDK接入实战:Android/iOS/鸿蒙三端怎么选、怎么接
android·ios·harmonyos
老李IT笔记2 天前
关掉设备上的 AI 扩展:两个键各管一层,配错了等于没配
人工智能·ios·智能手机
2501_915921432 天前
iOS应用耗电测试:使用Energy Log、Keymob和Instruments进行性能监控与能源消耗分析
android·ios·小程序·https·uni-app·iphone·webview