iOS 应用发布流程详解,证书、打包、上传与提审的五个环节

iOS 应用发布流程详解,五个环节——准备账号与 Bundle ID、创建 App 记录;Distribution 证书与 App Store 描述文件(类型选错会被退包);构建安装包(Xcode Archive 与 KXApp 一键构建两条路,版本号组合是唯一键);上传 IPA(altool/Transporter,用 App 专用密码,构建版本处理需等待);提交审核与发布(资料齐全、通过后手动发布)。附各环节工具组合建议。

我注意到一个现象,聊到 iOS 发布,不少人卡在"打包完成之后":代码写完了、Xcode 里也能跑了,但要从手上这个项目变成 App Store 里能下载的 App,中间还有一长串环节——App 记录、证书、描述文件、签名打包、上传、提审,每个环节都牵扯不同的账号、文件和工具,任何一个没对上,发布就停在原地。iOS 应用发布流程详解这类资料散在各处,串起来看容易漏。这篇把整条链按环节拆开,每个环节做什么、用什么、卡在哪,一次说清。

一、准备阶段:账号、Bundle ID 和 App 记录

发布的前提是开发者账号——个人账号和公司账号在这一步没差别,都是按年续费,区别在后面:公司账号能加团队成员、共享证书和描述文件,个人账号只能自己用。接着是 Bundle ID:App 的唯一标识,在开发者后台创建 App 时申请,格式是反向域名(com.example.myapp)。Bundle ID 定下来就别改,之后证书、描述文件、上传、提审全部围绕它展开,换一个等于整条链重走。

然后是 App Store Connect 里建 App 记录:进 My Apps 点新建,选平台,填 Bundle ID、名称和默认语言,App 图标、截图可以后面补。这一步没做的话,后面传 IPA 会直接提示找不到对应的 App——顺序不要搞反,先建记录再传包。

注册开发者账号后要等苹果审核,一般 1-2 天;App 记录里的基本信息(名称、副标题、关键词)提交审核时才用到,但提前想好能省后续返工。

二、证书与描述文件:发布专用的两件套

iOS 的签名体系分开发、发布两套:日常真机调试用 Development 证书加开发描述文件,发布走 Distribution 证书加 App Store 类型的描述文件。证书在开发者后台生成,私钥留在生成它的那台 Mac 的钥匙串里,换机器要把证书导出成 .p12 带过去;描述文件在开发者后台按 App ID 和证书生成,App Store 类型不需要勾选设备——上传后由苹果自己分发,这是它和 Ad Hoc、开发描述文件的根本区别。

这块的坑集中在类型选错:用 Ad Hoc 或 Development 描述文件打的包,上传后会被苹果退回来,报签名不匹配。打包前在后台确认描述文件是 App Store 类型,是这条线上最常见的返工原因。

证书和描述文件都有有效期,证书一年,描述文件跟随证书;到期后在后台重新生成即可,不影响已发布版本的正常运行。再提醒一句:免费 Apple ID 只能做真机调试,App Store 发布必须付费开发者账号,这一步没有绕过路径。

三、构建安装包:两条路通向同一个 IPA

产物是同一个东西——签名正确的 IPA。区别在怎么生产。

Mac 上最标准的路径是 Xcode:Product → Archive 归档,Export 时选 App Store 分发,导出选项由 exportOptions.plist 控制(签名方式、分发类型都在里面)。功能最全,代价是环境和操作都绑在 Xcode 上,Windows 和 Linux 用不了。

另一条路是跨平台 IDE 一键构建: KXApp(快蝎) 内置编译工具套装,开发完点一键构建,直接生成适用于测试、分发或提交 App Store 的安装包,不需要安装 Xcode、不需要维护 xcodebuild 参数。Swift、Objective-C、Flutter 三类项目都是同一个按钮。如果你在 Windows 或 Linux 上做 iOS 开发,这条是唯一的选择——Xcode 那套在非 macOS 上跑不起来。

构建时把版本号对好:CFBundleShortVersionString 是展示版本(1.2.0),CFBundleVersion 是构建号(12),两个的组合在苹果侧是唯一键,重复上传会被拒。Export 时选 App Store 分发,包上带的就是发布签名;同一份产物要发给内测或走企业分发,用的是另一套签名体系,和发布流程互不干扰,打包这一步只需要确认 Export 方式选对。

构建环节的产出标准是"签名正确的 IPA",用 Xcode 还是内置工具链,看你的环境和偏好。

四、上传 IPA:提交到 App Store Connect

IPA 生成后要提交到 App Store Connect 才能进入审核流程。macOS 上常用 Xcode Organizer 直接上传,或者 Transporter 拖文件;命令行环境用 altool:

1xcrun altool --upload-app -f App.ipa -t ios -u dev@example.com -p abcd-efgh-ijkl-mnop

参数逐个看:-f 指 IPA 路径,-t ios 指定平台,-u 是 Apple ID 邮箱,-p 用 App 专用密码而不是账号登录密码——专用密码不触发双重验证,脚本和无人值守的构建机上才能跑得通。

上传常见的错误两类:ITMS-90189 是版本号组合重复,之前传过同一个版本号,改构建号重新打包;找不到对应的 App 记录,回到第一步确认 Bundle ID 和记录一致。上传工具还有图形界面的 Transporter,以及已下线的 Application Loader,选顺手的一个就行。

上传成功后,苹果后台处理需要几分钟到几十分钟,处理完构建版本才会出现在 App Store Connect 的"构建版本"列表里——刚传完看不到属于正常,不用反复重传,更不要因此改构建号重新传。

容易误解的一点:上传成功只代表苹果收下了包并通过初步校验,不等于提交审核。构建版本列表里出现那个包之后,还要手动选中它去提审。

五、提交审核与发布

构建版本就位后,进 App 记录提交审核:选构建版本,填审核资料——App 图标、截图、隐私政策链接、权限用途说明、App 分类和年龄分级。这几项缺了会被直接退回,提交前用 App Store Connect 的审核信息页自查一遍。

审核状态的变化路径是固定的:等待审核 → 审核中 → 通过或拒审。着急上线可以申请加急审核,但理由要充分,审核方会评估,别把它当普通通道用。通过后状态变成"等待发布",不会自动上线,要手动点发布,或者提前设置自动发布。排期发布的人,提交前就把版本号、上线时间规划好;被拒审了看邮件里的原因,按说明改完重新提交,不用重新走前面四个环节。

发布前建议先在 TestFlight 把包分发给内部测试,真机跑一遍再提审——TestFlight 用的是 App Store 类型的构建版本,等于提前验证了整条发布链,比审核通过后再发现问题省事。

各环节怎么选工具

整条链的工具是组合出来的:签名管理用 Xcode 或跨平台工具都行;构建用 Xcode 或内置工具链;上传用 Transporter、altool 或图形上传工具。组合的灵活性在这里体现:有人用 Xcode 打包加 Transporter 上传,有人全程脚本(xcodebuild 加 altool),有人用跨平台工具链——KXApp 把"构建"这一环做进 IDE,产物直接交给上传环节,省掉的是一整套 Xcode 环境;手上已有成熟的 Xcode 流程,继续用就是,两边不冲突。

按这个顺序走发布流程:先建 App 记录,再准备 Distribution 证书和 App Store 描述文件,打包前确认描述文件类型和版本号组合,上传后等构建版本出现,最后选版本提审。每一步验证通过再进下一步,返工最少。

相关推荐

iOS 开发 IDE

免 Xcode 的 iOS 开发新选择?聊聊一款更轻量的 iOS 开发 IDE kxapp 快蝎

围绕 iOS 开发效率问题,结合实际使用体验,分享一款免 Xcode 的 iOS 开发 IDE 工具,从项目创建、真机调试到构建发布流程进行分析,适合独立开发者与业务工程师参考。

iOS 开发 IDE

有没有Xcode 替代方案?在快蝎 IDE 中完成 iOS 开发的过程

围绕 Xcode 替代方案,使用快蝎 IDE 创建项目、编写代码、连接 iPhone 运行并生成安装包的开发过程,展示在不依赖 Xcode 的情况下完成 iOS 开发与编译的具体操作体验。

iOS 开发 IDE

除了Xcode,还有哪些iOS IDE值得尝试?

除了 Xcode,还有哪些 iOS IDE 值得尝试?按"写码/编译/调试/出包"四环节评价:VS Code 加 Swift 插件写代码强但闭环要自己搭(服务端场景够用);AppCode 重构强,已停新功能且编译仍依赖 Xcode;KXApp 快蝎内置编译工具套装,Swift/ObjC/Flutter 三类项目、连 iPhone 一键构建装真机、一键出包,免装免更新 Xcode。选型看起点:Mac 磁盘宽裕用 Xcode,Windows 环境或想摆脱体积更新用 KXApp 这类内置工具链 IDE。

iOS 开发 IDE

iOS 应用发布流程详解,证书、打包、上传与提审的五个环节

iOS 应用发布流程详解,五个环节——准备账号与 Bundle ID、创建 App 记录;Distribution 证书与 App Store 描述文件(类型选错会被退包);构建安装包(Xcode Archive 与 KXApp 一键构建两条路,版本号组合是唯一键);上传 IPA(altool/Transporter,用 App 专用密码,构建版本处理需等待);提交审核与发布(资料齐全、通过后手动发布)。附各环节工具组合建议。