过审了,国区搜不到
把健康 App 送进 App Store,最容易高估的是:「审核过了就全球能下」。
Apple 过审只说明二进制和元数据过了全球审查。中国大陆还要再过一关:网站能备案访问、App 备案号能被 Connect 校验、简体中文名称还得和工信部登记逐字一致。少任何一项,美区活着,国区搜索栏里像这个产品从未存在。
不写具体账号和基础设施,只写会卡人的规则。
美区拒审:三件「觉得自己没做错」的事
Guideline 2.3.6:年龄分级是 Connect 表,不是代码。
App 没有家长控制、没有年龄核验,却把 Parental Controls / Age Assurance 勾成「有」,审核会按你声明的能力来查。两项都选 None。这是发版习惯,不是功能。
Guideline 5.1.1 / 5.1.2:第三方模型写进隐私政策不够。
用户内容会出设备、进云函数、再进第三方推理,就需要:App 内单独同意页(发什么、发给谁、可拒绝);拒绝后相关云端能力全部短路,本地记录仍可用;设置里可再改;隐私政策点名处理方。审核看控制面,不是文案长度。同意按用户隔离,删号时清掉本地记录。
Guideline 2.1:没使用的权限也会被点出来。
资料页曾调起系统选图,没有上传,plist 也没有相机/相册说明。审核员在 iPad 上点一下,系统弹权限,拒审就成立。真正要用就补用途说明;用不着就删调用。健康 App 尤其不要为了头像去碰相机。
这三条修完再提,美区过了。国区没有自动跟上。
国区不是第二个商店,是第二套合规
Connect 里看 价格与销售范围 / 中国大陆供应情况,比在商店里搜更准:
| 状态 | 含义 |
|---|---|
| 缺少 ICP 备案号 | 没填或没通过校验,国区不会出现 |
| ICP 备案号无效 | 号或元数据和工信部不一致 |
| 正在处理为可用 | 号已收下,常见数小时,文档口径约 24 小时 |
| 可用 | 直链应能打开;搜索索引常再晚 1~3 天 |
| 不可用 | 销售范围没勾中国大陆 |
两个容易混的号:网站备案号 给域名和页脚;App 备案号给 Connect,通常带服务后缀。把网站号填进 App 字段,得到的是「无效」,不是「再等一等」。
网站备案未完成时,域名外网常被拦成 403。这时用 HTTP-01 申请证书也会失败。问题在接入资格,不在 webroot。备案过了再申请证书。
名称冲突:副标题救不了「名称」字段
Apple 校验 ICP 时比对的是简体中文本地化里的 名称,不是副标题,也不是英文名。
错误配法:名称用英文,中文品牌放副标题 → 「与 MIIT 记录不符」。
再改成短中文通用名 → 「名称已被使用」。健康赛道四个字的好名字,国区大概率有人占着。
可执行做法:在 Connect 里找到一个能保存成功的中文名(可加产品缩写);去备案后台做 App 名称变更,改成与 Connect 完全相同的字符串;管局通过后再填 App 备案号。
网站文案、App 内文案、商店名可以不完全相同;工信部 App 名必须等于 Connect 简体中文名称。版本已上架导致名称锁定时,用新版本改。
搜索验收不要用被占用的短名,会搜到别人。用英文产品名、最终保住的中文店名,或开发者名;设备必须是中国区 Apple ID。直链 https://apps.apple.com/cn/app/id{AppleID} 能打开产品页,才算国区上架。搜索通是下一阶段。
建议顺序(可复用,不要并行)
text
① 过 App Review(年龄分级 / 第三方处理同意 / 无多余权限)
② 网站备案完成,域名 HTTPS 可打开,页脚公示网站备案号
③ 同一主体、同一域名做 App 备案
④ Connect 简体中文「名称」= 工信部 App 名称
⑤ 填 App 备案号,等到中国大陆 = 可用
⑥ /cn/ 直链确认,再等搜索索引 1~3 天
后续版本更新通常不必重备案。改商店中文名、改包名、换域名才会打回第 ③④ 步。大陆上架后还有联网备案时限,别只盯着 Connect 变绿。
健康类独立开发者三条硬约束:建议必须保守、可执行,不能写成诊断或处方,类别用「健康与健身」不要用「医疗」;云端模型和语音默认关闭,直到用户明确同意;权限最小化------在用的才声明,没用的不要出现在审核路径上。
国区能搜到、能下载,技术增量其实不大。变的是三张表对齐了:审核元数据、网站公开信息、工信部 App 名称。独立开发者容易把「上架」理解成一次构建、一次提交。中国区更像一次小型合规项目:二进制只是输入,输出是两套商店都承认你存在。
附录:审核备注怎么写
备注写给人看,不是写给搜索引擎。英文、短句、可逐步点。审核员平均不会读你的产品哲学。
先准备审核号
用新邮箱 注册,不要用日常开发号。提交前用 TestFlight 商店包 (不是自定义基座)走通:登录 → 同意或跳过第三方处理 → 首页 → 训练 → 助手一句闲聊 → 记录一条 → 「我的」滑到底能看见删除账号(不要在这个号上点删除)。
密码只放 Connect 和密码管理器,不要写进仓库、博客、截图。
备注只回答五件事
- 这是什么、不是什么(生活方式 vs 医疗)
- 怎么登录
- 建议路径(按 Tab 顺序,每步一个动作)
- 审核员可能点到的「坑」:同意页、拒权 HealthKit、没有相机、没有家长控制
- 政策、协议、注销在哪
不要写架构图、模型名清单、服务器位置。处理方名称与隐私政策保持一致即可。
可粘贴模板(替换方括号,勿提交真实密码到 Git)
vbnet
[App name] is a lifestyle wellness app, not a medical device.
It may read Apple Health (HealthKit) data read-only to generate conservative, non-diagnostic tips and a daily activity plan. It does not write to HealthKit, does not diagnose, and does not prescribe medication or treatment.
Demo account:
Email: [REVIEW_EMAIL]
Password: [REVIEW_PASSWORD]
Suggested path:
1) Sign in with the demo account
2) You will see an in-app disclosure before any personal data is sent to a third-party AI provider (same name as in the Privacy Policy). Tap Agree to enable AI features, or Not now to use manual logs only. This can be changed later under Profile → Account & Privacy.
3) Home --- daily briefing / recovery-oriented summary
4) Workout --- today's plan
5) Chat --- ask a general lifestyle question (optional microphone; requires AI consent)
6) Records --- manual workout / sleep / mood logs
7) Profile --- default avatar only (no Camera or Photo Library). Scroll for AI consent, Privacy Policy, Terms, and Delete Account (please do not delete the demo account)
This build does not use the camera or photo library. There is no parental-control or age-assurance feature.
If HealthKit access is declined: the app still works with manual logs; AI features still require the in-app consent above.
Privacy Policy and Terms are on the login screen and under Profile → Account & Privacy.
Sign in with Apple is not used (email/password only).
No third-party ads and no App Tracking Transparency prompt.
Connect 里一起核对的字段
| 字段 | 建议 |
|---|---|
| 登录是否需要 | 是(若确实要登录) |
| 用户名 / 密码 | 仅填审核号,与备注一致 |
| 联系电话 | 审核期间可接通的号码 |
| 年龄分级 | Parental Controls / Age Assurance = None(若确实没有) |
| 广告标识 | 无 ATT、无追踪就按「不请求」勾 |
备注里写了「没有相机」,审核路径上就不要再出现系统相册。写了「可拒绝健康权限」,拒绝后就不要白屏。写了「未同意则不发第三方」,点 Not now 之后相关请求必须全部短路。
备注不是文采比赛。审核员能按 1~7 点完、不踩空权限,这条备注就够了。