本篇目标
了解 App Store 审核机制,掌握常见被拒原因与解决方案,理解隐私合规要求,能在提交审核前自查并避免常见坑。
一、App Store 审核机制
审核流程:
提交 → 排队 → 机器审核 → 人工审核 → 结果(通过/被拒)审核时间:
阶段 | 时间 |
|---|---|
排队 | 几小时到几天 |
机器审核 | 几分钟到几小时 |
人工审核 | 1-3 天 |
总计 | 通常 1-3 天 |
审核方式:
机器审核:自动检测代码、元数据、隐私声明。
人工审核:审核人员实际使用 App,检查功能与内容。
审核结果:
状态 | 说明 |
|---|---|
通过 | 可以发布 |
被拒 | 需要修改后重新提交 |
需要更多信息 | 审核人员需要补充说明 |
元数据被拒 | 信息问题,不影响构建版本 |
📌 进阶内容:各类被拒原因的逐条应对与申诉话术属进阶内容,已放到第 10 章《常见被拒原因汇总》;本篇只保留首次提交最容易踩的两类(崩溃、隐私)。
二、崩溃与 Bug
常见被拒原因:
App 启动即崩溃。
核心功能不可用。
网络请求失败后无提示。
按钮点击无响应。
页面空白。
避免方法:
提交前多设备测试。
覆盖弱网、无网场景。
处理异常情况。
添加错误提示。
使用 TestFlight 收集反馈。
审核备注说明:
测试步骤:
1. 打开 App
2. 点击「新建」
3. 输入内容并保存
4. 查看列表
测试账号:
用户名:test@example.com
密码:test1234注意:
审核人员不熟悉你的 App,需要清晰指引。
测试账号要真实可用。
特殊功能要在备注中说明。
三、隐私问题
常见被拒原因:
缺少隐私政策。
隐私政策链接无效。
数据收集声明不实。
未申请权限就使用功能。
权限描述不清晰。
隐私政策:
必须提供可访问的 URL。
内容说明收集哪些数据、如何使用。
与 App 实际行为一致。
数据收集声明:
在 App Store Connect 中如实填写:
数据类型 | 是否收集 | 用途 |
|---|---|---|
联系信息 | 如收集 | 账号注册 |
用户内容 | 如收集 | 数据存储 |
标识符 | 如收集 | 分析 |
使用数据 | 如收集 | 改进产品 |
诊断 | 如收集 | 崩溃分析 |
权限描述:
Info.plist 中必须填写权限用途描述:
<key>NSCameraUsageDescription</key>
<string>用于拍摄照片作为头像</string>
<key>NSPhotoLibraryUsageDescription</key>
<string>用于选择照片作为头像</string>
<key>NSLocationWhenInUseUsageDescription</key>
<string>用于显示附近内容</string>注意:
描述要具体说明用途。
不要写「需要此权限才能使用」。
未使用的权限不要申请。
ATT 广告追踪:
iOS 14.5+ 需要请求追踪权限。
在 Info.plist 中添加
NSUserTrackingUsageDescription。使用 AppTrackingTransparency 框架。
四、提交前自查清单
功能:
[ ] 核心功能可用
[ ] 无崩溃
[ ] 无死链
[ ] 弱网有提示
[ ] 空状态有提示
隐私:
[ ] 隐私政策 URL 有效
[ ] 数据收集声明完整
[ ] 权限描述清晰
[ ] ATT 权限已处理
元数据:
[ ] 截图真实
[ ] 描述准确
[ ] 关键词合规
[ ] App 名称合规
商业:
[ ] 虚拟商品使用 IAP
[ ] 无外部支付引导
[ ] 无诱导好评
技术:
[ ] 无私有 API
[ ] 后台模式合理
[ ] ATS 配置正确
[ ] 设备方向一致
审核备注:
[ ] 测试步骤清晰
[ ] 测试账号有效
[ ] 特殊功能说明
五、避坑指南
不要用私有 API:必被拒。
不要引导外部支付:虚拟商品必须 IAP。
不要忽略隐私声明:如实填写。
不要用虚假截图:必须真实界面。
不要夸大功能:描述与功能一致。
不要用侵权内容:图片、音乐、字体都要合规。
不要滥用后台模式:声明后要有用途。
不要忽视审核备注:写清楚帮助审核。
不要重复提交:修改后再提交。
不要情绪化回复:专业沟通。
六、检查清单
[ ] 理解审核机制与流程
[ ] 了解常见被拒原因
[ ] 能避免崩溃与 Bug
[ ] 能完成隐私合规
[ ] 能写好元数据
[ ] 能处理设计问题
[ ] 能处理商业模式问题
[ ] 能处理技术问题
[ ] 会处理审核被拒
[ ] 能完成提交前自查