作为一名 iOS 独立开发者,回想起第一次发布应用时的手忙脚乱,真是一把辛酸泪。其实发布流程本身并不复杂,主要是一些细节容易遗漏,导致各种小问题。这里分享一套我现在在用的简单流程,特别适合刚入门的同学。
为什么要有个发布流程
刚开始的时候,我觉得发布应用很简单:改代码 → 打包 → 上传。结果第一次就翻车了:
- 版本号忘更新:Widget 的版本号忘了改,构建失败
- Bundle ID 搞错:Widget 的 Bundle ID 前缀不对,报错
- 测试版本搞混:不知道手机上装的是哪个版本(特别是 Xcode 直接编译到真机上后)
- 构建失败不知道咋办:改完代码不知道是重新提交还是覆盖
其实这些都是些小问题,但经常出现也会搞的人很烦躁,所以有个简单的检查清单就能避免。
准备工作
Xcode Cloud:自动化构建
建议使用 Xcode Cloud 来自动化构建和测试。这样每次提交代码后,Xcode Cloud 会帮你自动打包上传到 App Store Connect,省去很多麻烦。
同时维护两个版本
这个技巧比较实用,我会维护两套配置:
- 正式版本:发布用的,标准 Bundle ID,在 main、release/* 分支上使用
- Beta 版本:开发测试用,Bundle ID 带
.beta后缀,应用名字加个 * 号,在 develop、feature/* 分支上使用
Beta 版本应用名字后面加个 * 号,是因为从 TestFlight 上安装还好,应用名称会带一个圆点前缀,但是如果从 Xcode 直接构建到真机上会没有任何显著标识,导致很难快速区分正式版和 Beta 版。
同时在 App Store Connect 上创建两个应用记录,一个用于正式发布,一个用于 Beta 测试。
这样做的好处?
主要是测试的时候不会覆盖手机上的正式版本,可以同时装两个版本对比。
举个例子:
- 正式版本:
com.yourcompany.yourapp - Beta 版本:
com.yourcompany.yourapp.beta
这样就能在手机上同时装两个版本了,而且因为 Bundle ID 不同,数据也是相互独立的(使用了 App Group 共享数据的除外)。
发布流程(6 个简单步骤)
步骤 1:准备发布版本
1. 创建发布分支(可选)
如果你用 git flow:
git flow release start v1.2.0
不用 git flow 的话,从 develop 分支创建一个新分支就行。
2. 检查版本配置 这是最重要的一步,逐个检查:
- 打开 Xcode → Project → 每个 Target → General
- 更新 Version 字段到新版本号
- 检查 Bundle Identifier(发布版本不要带
.beta) - 确认 Display Name 正确
3. Widget Bundle ID 检查 如果有 Widget,确保它的 Bundle ID 以主应用的为前缀:
主应用:
com.yourcompany.yourapp
Widget:com.yourcompany.yourapp.widget✅Widget 的 Bundle Identifier 必须以主应用的 Bundle Identifier 为前缀,否则会出现 "Embedded binary's bundle identifier is not prefixed with the parent app's bundle identifier" 错误。
4. 编译测试
CMD + B 编译一下,没问题再继续。
步骤 2: App Store Connect 配置
- 登录 App Store Connect
- 创建新版本(如果还没创建的话)
步骤 3:提交代码
5. 提交更改
git add .
git cz
# 或者如果不用 commitizen
git commit -m "build: release v1.2.0"
git push
步骤 4:构建和测试
6. 等待构建完成 如果你用 Xcode Cloud,等构建完成;如果手动打包,Archive 后上传到 App Store Connect。
7. TestFlight 测试 通过 TestFlight 下载构建好的版本,在真机上测试一遍。
步骤 5:收尾
8. 合并代码
如果用 git flow:
git flow release finish v1.2.0
不用 git flow 的话,手动合并到 main 分支。
步骤 6:发布
9. App Store Connect 配置补全
- 再次登录 App Store Connect
- 填写更新说明
- 选择构建版本
- 提交审核
10. 清理开发分支 如果你用双版本配置,记得把开发分支改回 Beta 版本的配置。
git checkout develop
git revert xxx # 撤销发布版本的配置更改
几个常见问题
1. 构建失败了怎么办?
- 配置问题(版本号、Bundle ID 等):修改后用
git commit --amend覆盖提交 - 代码问题:正常提交新的 commit 修复
2. 要不要每次都测试?
建议每次都要,哪怕是很小的更新。TestFlight 很方便。
3. 版本号管理
所有 Target(主应用、Widget、扩展)的版本号都要保持一致。
4. Bundle ID 配置
如果用双版本配置,建议用 Xcode 的 Configuration 来管理,不要手动改。
推荐工具
- Git Flow:分支管理,可选但很实用
- Git Commitizen:规范化提交信息
- Xcode Cloud:自动构建,省心
- Xcode Configurations:管理不同环境配置
写在最后
这套流程虽然看起来有好几个步骤,但其实很简单,核心就是:检查配置 → 提交代码 → 构建测试 → 发布审核。
每个人的项目情况不一样,你可以根据自己的需要调整。但最重要的是要有个固定的流程,避免每次发布都手忙脚乱。
希望这个入门指引能帮到刚开始做 iOS 开发的同学,早点熟悉发布流程,把更多时间花在产品本身上。
