乐于分享
好东西不私藏

从小白到把 macOS App 提交到 App Store:一篇讲透发布流程的实战教程

从小白到把 macOS App 提交到 App Store:一篇讲透发布流程的实战教程

如果你也刚做完一个 macOS 软件,准备第一次上架 App Store,大概率会和我一开始一样:

不知道先做什么,后做什么

不确定 App Store Connect 里哪些字段必须填

不知道截图、隐私、审核备注到底该怎么准备

更担心提审之后被 Apple 一顿打回

这篇文章我尽量站在一个“小白开发者”的视角,把我这次把 DailyEnglish 提交到 Mac App Store 审核的完整过程讲清楚。

这不是一篇只讲理论的说明文,而是一篇带着真实项目落地过一遍的复盘。你可以把它理解成:

一个第一次上架 macOS App 的人,如何从“完全没经验”走到“已经提交等待审核”。

上图就是这次最终的状态:已提交 1 个项目,进入等待审核。

先说结论:macOS App 上架,核心不是“点按钮”,而是“先把产品边界收干净”

很多人以为上架流程的难点在 Xcode 打包、上传构建、填 App Store Connect。

但我这次最大的体感是:

真正决定你能不能顺利提审的,不是最后那几个按钮,而是你有没有提前想清楚这几个问题:

1.

你的首版到底卖什么

2.

你的 App 是否存在会被 Apple 追问的账号、支付、会员、权限、隐私问题

3.

你的产品页文案、截图、审核备注,是否和 App 里的真实体验一致

只要这三件事理顺,后面的工作虽然繁琐,但并不神秘。

我的项目背景

这次提交的是 DailyEnglish 的 macOS 端。

我最初的整体产品其实有三个端:

Chrome 插件端

macOS 桌面端

Web 端

但在真正准备 App Store 首发时,我没有把三端能力一股脑全部塞进 Mac 版本,而是做了一个非常重要的收敛:

首版只把它当成一个“菜单栏英语翻译工具”来提交。

我保留的核心能力只有这几项:

输入翻译

划词翻译

截图翻译

OCR 识别

本地翻译历史

菜单栏常驻入口

这个决定非常关键,因为它直接影响后面所有的审核风险。

第一步:先决定“首版怎么卖”,再决定“功能怎么收”

一开始我其实有不少复杂设想,比如账号体系、跨端同步、会员权益之类。

但越往后看越发现,首版如果想顺利过审,越简单越好。

所以我最后采取的是这条路线:

Mac App Store 买断版

用户通过 App Store 一次性付费下载

不要求额外注册账号

不暴露登录、注册、会员、跨平台权益等入口

这一步背后的思路很朴素:

如果首版一上来就带上登录、外部购买、会员体系、跨端同步,Apple 审核很容易继续追问:

为什么不用 Sign in with Apple

为什么没有 App 内账户删除

为什么会员能力不走 App 内购买

为什么下载后还要去外部注册

所以我最后做的不是“把所有功能都搬上来”,而是“先做一个审核路径最清晰的版本”。

第二步:先改产品,再谈提审

在进入 App Store Connect 之前,我先把本地产品做了一轮“App Store 化”处理。

我主要做了这些收口:

隐藏登录、账户、同步相关入口

把“我的翻译”改成了本地历史记录

关于页改成买断版文案

保留输入翻译、划词翻译、截图翻译这几个最清晰的功能点

做完这一步,产品表达就变得非常统一:

它不是一个复杂的跨端英语学习平台,而是一个菜单栏翻译工具。

这个统一性非常重要,因为产品页、截图、隐私声明、审核备注,最终都要围绕同一个故事来写。

第三步:准备 App Store 所需资料

真正开始填 Apple 后台时,我发现需要准备的资料远比想象中多。

至少要提前想清楚下面这些东西:

App 名称

副标题

推广文本

描述

关键词

Support URL

Marketing URL

Privacy Policy URL

审核联系人

审核备注

截图

隐私披露

定价

如果这些内容不提前整理,等你打开 App Store Connect 再现场写,会非常痛苦。

我这次的做法是先在本地写一份草稿,把所有字段一次性整理好,再往后台填。

第四步:截图一定要提前准备,而且要按 Apple 规格来

很多第一次上架的人,都会低估截图这件事。

但实际上,截图不是可有可无的装饰,它既影响提审效率,也影响用户第一眼的理解。

Mac App Store 对截图尺寸是有要求的,这次我准备的是 2560 x 1600 的 16:10 成品图。

我最后用了 6 张图就完成了首版提交:

输入翻译主界面

本地翻译历史

快捷键和语言设置

权限与通用设置

翻译服务配置

关于页与支持入口

1. 主界面截图

这类图最重要的不是“看起来炫”,而是让用户一眼知道:

这个 App 到底是干什么的。

2. 权限与设置截图

因为我的 App 有 Accessibility 和 Screen Recording 相关功能,所以我专门把权限和设置做进了截图素材里。

这样 Apple 审核和用户都会更容易理解:

权限是用户主动开启的

没有权限时,App 也不是完全不可用

3. 关于页与支持入口截图

这类截图的价值在于增强“这是一个完整产品”的感觉。

尤其对于首版 App 来说,支持链接、隐私政策入口、版本信息,都会让整个产品页更完整。

第五步:App 权限一定要解释清楚

我的 App 有两个很敏感、但其实也很常见的权限:

Accessibility

Screen Recording

它们分别对应:

划词翻译

截图翻译

这类权限本身不是不能用,问题在于你必须说清楚:

1.

用户为什么要开这个权限

2.

这个权限是在什么场景下使用

3.

如果用户不开,会发生什么

我这次在审核备注里讲得非常直接:

Accessibility 只在用户主动触发划词翻译时使用

Screen Recording 只在用户主动发起截图翻译时使用

如果用户不授予权限,手动输入翻译仍然可以正常使用

这类表述的好处是,Apple 很容易判断你不是在后台偷偷采集信息,而是在明确的交互路径里使用系统能力。

第六步:App 隐私别乱填,先按“真实数据流”拆解

我一开始也很怕 App Privacy,总觉得这里很容易填错。

后来我发现一个简单办法:

不要从“我想怎么填”出发,而要从“用户的数据到底流向了哪里”出发。

比如我的场景里,用户会输入文本、划词、截图识别文字,然后把这些内容交给翻译能力去处理。

那从数据类型上看,最需要披露的就是:

Other User Content

用途是:

App Functionality

是否追踪:

No

这个页面最怕两种情况:

明明会上传用户文本,却写成“没有收集数据”

明明有账号和日志关联,却没有补充相关披露

所以建议大家一定先把自己的真实数据流过一遍,再去填隐私页。

第七步:定价不是你想填多少就能填多少

这个点我觉得很多第一次上架的人也会忽略。

我原本想把首版价格定成 19 元,但真正进入 App Store Connect 之后才发现,Apple 采用的是价档体系,不是让你随便输入一个数字。

最后我选的是最接近的档位:

中国大陆 (CNY) ¥18.00

所以如果你对价格特别敏感,建议早点去看 Apple 的价格档位,不要等到最后才发现没有你想象中的那个整数。

第八步:审核备注非常重要,别只写一句“please review”

如果你的 App 很简单,审核员点开就能懂,那备注可以短一点。

但如果你的 App 有以下任意一种情况,审核备注就一定要认真写:

菜单栏应用

首次打开没有传统主窗口

需要特殊权限

某些功能需要特定触发方式

不登录也能用,但部分能力有条件

我的 App 就属于典型的“菜单栏工具类”产品,所以备注里我专门写了:

1.

App 启动后不会自动弹一个传统主窗口

2.

审核员应该去点菜单栏图标

3.

手动输入翻译可以直接体验

4.

划词翻译和截图翻译需要在授权后测试

5.

未授权时仍可以使用手动输入翻译

这样审核员就不至于一脸懵地打开 App,然后因为没找到入口就给你一个“功能不可用”。

第九步:真正提审前,最好做一次“全链路检查”

我建议在点“提交审核”之前,至少过一遍下面这个检查清单:

App 的版本号、构建号是否一致

App Store Connect 中的版本信息是否和本地版本匹配

截图是否符合尺寸要求

产品页文案是否和 App 内实际功能一致

Support URL 是否能正常打开

Privacy Policy URL 是否可访问

权限描述和审核备注是否一致

定价是否已经真正保存

提审的 build 是否是最新版本

这些事情看起来都不复杂,但只要漏一个,你就可能来回折腾很多轮。

第十步:第一次上架,最容易踩的坑是什么

如果让我复盘这次经历,我觉得最容易踩的坑主要有 6 个:

1. 一上来就想提一个“功能最全”的版本

这通常会把审核复杂度直接拉满。

首版更好的策略往往是:

功能少一点,但边界清楚一点。

2. 产品页写得很大,App 里却没有完全体现

比如你明明只是一个翻译工具,却在文案里写成完整学习平台,那审核员和用户都会产生落差。

3. 没把权限用途说清楚

特别是 AccessibilityScreen Recording 这类权限,最好在截图、设置页、审核备注里形成统一解释。

4. 低估截图准备成本

Mac App Store 的截图不是随手一截就行,尺寸、比例、页面状态、文案表达都要提前设计。

5. 以为隐私页只是“形式化填写”

其实这里和你的实际数据处理逻辑是强相关的,填错了风险不小。

6. 最后一步才去想价格、支持页和隐私政策

这些看起来像“运营资料”,但实际上都是提审必需品。

我这次最深的感受

如果让我用一句话总结这次 macOS App 上架经历,我会说:

上架 App Store,本质上是在把一个“能跑的程序”整理成一个“可以被平台理解、被用户购买、被审核通过的产品”。

你会发现,真正的工作不只是写代码,还包括:

做取舍

明确首版范围

梳理权限和隐私

写清楚产品文案

把审核路径设计出来

这些事情做完之后,点击“提交审核”反而只是最后一个很小的动作。

最后,给第一次上架 macOS App 的朋友一个建议

如果你现在也准备第一次发 macOS App,不妨按下面这个顺序来:

1.

先确定首版卖点,不要一开始就贪大求全

2.

先把 App 内容易引发审核问题的内容收干净

3.

提前准备文案、截图、隐私政策、支持页

4.

在 App Store Connect 里逐页核对,而不是凭感觉“应该已经填了”

5.

提交前做一次完整复查

你不需要一开始就对 Apple 审核机制非常熟。

但你确实需要把自己的产品边界讲清楚。

当你做到这一步,macOS App 上架这件事就不会再是“完全无从下手”,而会变成一套可以拆解、可以执行的流程。

附:这次首版提交的产品定位

为了方便你参考,我把这次 DailyEnglish 提交时的首版定位也放在最后:

产品形态:macOS 菜单栏翻译工具

核心功能:输入翻译、划词翻译、截图翻译、OCR、本地历史

付费方式:Mac App Store 买断

审核策略:不要求登录,不暴露会员、同步、外部购买路径

权限重点:Accessibility 与 Screen Recording

当前状态:已提交审核,等待结果