[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"$f2Dn945BncT_GSEUb_ZfsQPwAxNQfQpG8brK5iQxt0us":3},{"code":4,"message":5,"data":6},200,"成功",{"id":7,"createdAt":8,"title":9,"content":10,"summary":11,"image":12,"uid":13,"user":14,"categoryId":21,"category":22,"subCategoryId":24,"subCategory":25,"comments":27,"status":17,"reason":12,"notice":12,"visitCount":21,"commentCount":28,"keywords":29},197,"2026-09-06T18:29:59.185Z","iOS 2026 App Store 新规完整指南｜年龄分级、Age‑Assurance API、录屏与隐私、2.1 审核踩坑","# iOS 2026 App Store 新规完整指南｜年龄分级、Age‑Assurance API、录屏与隐私、2.1 审核踩坑\n\n> 面向 iOS 开发、测试、项目负责人\n> 关键词：App Store 审核、年龄分级、Age‑Assurance、Declared Age Range API、PermissionKit、Guideline 2.1\n\n---\n\n## 写在前面\n\n2025 到 2026 年，App Store 的合规框架发生了两次重要升级：一次是**年龄分级与未成年人保护**，另一次是**审核材料完整性的执行收紧**。前者由 iOS 26 系列 SDK、Age‑Assurance 框架和 App Store Connect 问卷改动共同构成；后者则让老牌的 `Guideline 2.1‑Information Needed` 成为新 App 上架的高频拦路虎。\n\n对开发者来说，这两条线不是孤立的：如果你在问卷里把 App 标记为“具备社交媒体能力”，审核团队不仅会检查产品页描述，还可能要求你在代码中接入 `Declared Age Range API`，并对 13 岁以下用户关闭公开社交能力。反之，如果资料准备不全——缺少真机录屏、测试账号或第三方服务清单——即使功能合规，也会卡在 2.1 信息补齐阶段。\n\n这篇文章把时间线、后台配置、开发接入、审核材料、拒审修复和上线清单串成一条完整链路，帮助团队在发版前把合规风险降到可控范围。\n\n---\n\n## 一、2026 年 App Store 新规时间线\n\n### 1.1 新版年龄分级问卷\n\nApple 在 2025 年 7 月 24 日上线了新年龄分级问卷，核心变化包括：\n\n- 新增 **13+、16+、18+** 三档，与原有 4+、9+、12+、17+ 共同构成更细粒度的分级体系。\n- 新增对 **社交媒体、用户生成内容（UGC）、AI 生成内容、不受限网页访问** 的专项问题。\n- 2026 年 1 月 31 日前，所有存量 App 必须完成新版问卷填报，否则无法提交新版本或修改元数据。\n- 2026 年 7 月 9 日，问卷进一步加入**社交媒体能力**问题；从 **2026 年 9 月起**，新 App 提交和版本更新必须如实回答，否则会成为提交阻塞项。\n\n> 一句话影响：如果你做了一款带“广场/发现页/公开评论”的产品，从 2026 年 9 月开始，问卷里勾选“是”会同时触发**产品页 Social Media 标签**和**家长控制 Time Allowances 分类**，并可能要求接入 Age‑Assurance API。\n\n### 1.2 Declared Age Range API 与 Age‑Assurance 框架\n\nApple 在 WWDC25 推出 Declared Age Range API，作为 Age‑Assurance 框架的核心能力。它允许 App 请求一个年龄段（age band），而不是精确生日，从而在保护隐私的前提下判断用户是否未成年、是否需要家长同意。\n\n**SDK 要求**\n\n- 完整能力需要 **Xcode 26.2+**，并基于 **iOS 26.2 / iPadOS 26.2 SDK** 或更高版本构建。\n- iOS 26.0 起已提供基础年龄段分享能力；iOS 26.2 起增加地区法规判断与年龄保证信号；iOS 26.4 起增加重大更新确认弹窗（Significant Update Acknowledgement）。\n- 低版本系统没有这些 API，业务必须准备兜底方案，例如 App 内自有的年龄选择或家长同意流程。\n\n**地区生效时间**\n\n| 地区 | 生效时间 | 说明 |\n|------|----------|------|\n| 巴西、澳大利亚、新加坡 | 2026‑02‑24 | 18+ 分级 App 默认拦截下载，需完成年龄确认 |\n| 美国犹他州 | 2026‑05‑06 | 新 Apple Account 开始适用 |\n| 美国德州 | 2026‑06‑04 | SB 2420 法院禁令解除后恢复生效 |\n| 美国路易斯安那州 | 2026‑07‑01 | 新 Apple Account 开始适用 |\n\n> 注意：即便 App 不上架上述地区，只要你在问卷里声明了社交媒体能力，审核仍可能要求展示年龄保证机制，因为 App Review 会检查你是否真的对未成年人关闭了公开社交能力。\n\n### 1.3 Guideline 2.1‑Information Needed：老条款，新力度\n\n`Guideline 2.1 App Completeness` 并不是 2026 年新条款，但 2026 年审核团队对新 App 的抽查明显变严。触发场景包括：新 App 首次提审、UGC/社交/相机麦克风/AI/付费订阅等。\n\n常见索要材料清单：\n\n1. 真机最新系统录屏，从启动开始完整跑通核心流程。\n2. 测试设备型号与操作系统版本清单。\n3. App 功能、目标受众、解决的问题、提供的价值说明。\n4. 核心功能访问指引与登录凭据。\n5. 外部服务、工具平台清单（鉴权、支付、AI、第三方登录等）。\n6. 地区功能差异说明，或确认全球一致。\n7. 强监管行业资质或第三方素材授权文件。\n\n> 2.1 信息补齐不是终审拒绝，补齐后可以继续审核；但反复遗漏会拉长周期，甚至被标记为高风险 App。\n\n### 1.4 音视频与屏幕录制隐私（Guideline 2.5.4）\n\n- 摄像头、麦克风、ReplayKit 屏幕录制必须明确申请授权。\n- 录制期间 UI 需要展示可视化提示，禁止后台静默采集。\n- `Info.plist` 的用途描述必须写清业务场景，模糊文案容易触发 5.1.1 拒审。\n\n---\n\n## 二、App Store Connect 后台配置\n\n### 2.1 年龄分级问卷关键选项\n\n路径：**App Store Connect → App 信息 → 年龄分级 → 编辑问卷**\n\n| 问题 | 勾选“是”的含义 | 勾选“否”的含义 |\n|------|----------------|----------------|\n| 社交媒体 | 具备公开广场、推荐流、陌生人可浏览的用户作品、公开评论分发机制 | 仅限一对一私聊/群聊；UGC 仅好友或本人可见 |\n| 用户生成内容 | 用户可以发布图文、视频、评论 | 纯消费，用户不产生对外内容 |\n| 不受限网页访问 | 内置 WebView 可访问任意外部网址 | 仅跳转固定官方静态页面 |\n\n**社交媒体能力的官方定义**是：*通过社交动态或类似发现机制，对用户生成内容进行重新分发、放大或互动*。这意味着不只是传统社交 App，带公开评论区的电商、带广场的发现型产品、公开可见的玩家作品墙，都可能被归入此类。\n\n勾选“是”后的连锁反应：\n\n- App Store 产品页出现 **Social Media** 内容描述符。\n- 在 iOS 27 / iPadOS 27 / macOS 27 的 **Time Allowances** 家长控制中，App 会被归入“社交媒体”类别。\n- 最低年龄分级会被压到 **13+**，除非你声明“对 13 岁以下用户禁用社交媒体能力”，并能通过代码验证。\n\n> 产品侧捷径：如果业务可以妥协，把公开广场改成“仅好友可见”或彻底移除，问卷勾选“否”，即可避免接入 Age‑Assurance API 和 13+ 强制分级。\n\n### 2.2 2.1 审核信息英文模板\n\n填写位置：**App Store Connect → App Review Information → Notes**\n\n录屏通过附件上传，格式 mov/mp4，建议 ≤50MB；不要放网盘链接。\n\n```text\n1. Screen recording: A physical‑device screen recording is attached. It covers app launch, registration, login, account deletion, subscription purchase, UGC report & block, and all system permission prompts (camera, microphone, ATT).\n\n2. Tested devices & OS versions:\n- iPhone 15 Pro, iOS 26.1\n- iPhone 14, iOS 26.0\n\n3. App purpose & target audience:\nThis app is a XXX platform for XXX users. It provides XXX, helping users to XXX.\n\n4. Access instructions:\nTest account — Username: 348862716, Password: 1234. After login, all core features are accessible.\n\n5. Third‑party services:\n- Google Sign‑In for authentication\n- Apple Sign‑In\n\n6. Regional differences:\nFeatures and content are consistent across all regions. No region‑specific differences.\n\n7. Regulated industry & copyright:\nThis app is not in a highly regulated industry. All in‑app materials are properly licensed.\n```\n\n> Notes 有 4000 字符上限，长段落需要精简；测试账号要在审核周期内保持可用，避免短信验证码、IP 限制或短期过期。\n\n---\n\n## 三、iOS 端开发接入\n\n### 3.1 框架与能力配置\n\n使用 Declared Age Range API 前，需要在 Apple Developer 网站为 App ID 开启 **Declared Age Range** 能力（capability），Xcode 会自动把对应的 entitlement 写入工程。模块导入名通常为 `AgeAssurance`，但具体以 SDK Header 为准。\n\n### 3.2 请求年龄段\n\nDeclared Age Range API 的核心设计是：App 传入若干 age gates，系统返回用户所处的年龄段上下界以及验证状态。系统会缓存响应并在设备间同步，避免反复打扰用户。\n\n典型返回状态包括：\n\n- `selfDeclared`：用户自行声明的年龄范围\n- `guardianDeclared`：家长或监护人为儿童账户声明的范围\n- `governmentIDChecked` / `paymentChecked`：通过官方证件或支付方式验证\n- `declined` / 不可用：用户拒绝分享或当前地区/设备不支持\n\n处理逻辑示例：\n\n```swift\nimport AgeAssurance\n\nfunc checkAgeEligibility() async {\n    guard #available(iOS 26.2, *) else {\n        // 低版本系统走 App 内自有年龄校验\n        runInternalAgeGate()\n        return\n    }\n\n    do {\n        // 示意：请求以 13 岁为门槛的年龄段\n        // 真实方法签名以 Apple SDK 文档为准\n        let result = try await AgeRangeService.shared.requestAgeRange(ageGates: [13])\n\n        guard let lower = result.ageLower else {\n            // 未返回年龄段，保守处理\n            restrictPublicSocialFeatures()\n            return\n        }\n\n        if lower \u003C 13 {\n            // 13 岁以下：关闭公开广场、UGC 发布、陌生人互动\n            restrictPublicSocialFeatures()\n        } else {\n            // 13 岁及以上：按产品策略放行\n            enablePublicSocialFeatures()\n        }\n    } catch {\n        // 异常时建议采用最严格策略\n        restrictPublicSocialFeatures()\n    }\n}\n\nprivate func restrictPublicSocialFeatures() {\n    // 隐藏广场入口、禁用作品发布、关闭公开评论\n}\n```\n\n> 设计建议：年龄段判断应该封装成独立服务，并在内容渲染前统一拦截，而不是分散在每个 UI 页面判断。这样一旦地区法规或产品策略变化，只需要改一处。\n\n### 3.3 地区法规判断\n\niOS 26.2 起，`AgeRangeService` 提供 `isEligibleForAgeFeatures` 和 `requiredRegulatoryFeatures` 等属性，用于判断当前用户是否处于受法规约束的地区，以及需要开启哪些合规特性。\n\n```swift\nif #available(iOS 26.2, *) {\n    let features = AgeRangeService.shared.requiredRegulatoryFeatures\n    if features.contains(.ageVerification) {\n        // 需要强制年龄校验\n    }\n}\n```\n\n### 3.4 重大更新确认弹窗\n\n当 App 从“无社交能力”升级到“有社交能力”，或发生重大功能变更时，部分地区法规要求先获得家长或监护人同意。iOS 26.4 起可通过 `AgeRangeService.showSignificantUpdateAcknowledgement(in:updateDescription:)` 触发系统确认弹窗。\n\n```swift\nif #available(iOS 26.4, *) {\n    try? await AgeRangeService.shared.showSignificantUpdateAcknowledgement(\n        in: viewController,\n        updateDescription: \"This update adds public social content publishing.\"\n    )\n}\n```\n\n对应地，`PermissionKit` 提供 `SignificantAppUpdateTopic`，用于向家长请求重大更新许可，并在获得/拒绝后接收异步响应。\n\n### 3.5 PermissionKit 与家长同意\n\n如果产品包含儿童/青少年通信功能，PermissionKit 可以把“添加好友、发消息、关注他人”等操作路由到家长设备上的 Messages 进行审批。家长在消息里点击同意或拒绝，App 通过异步序列接收结果。\n\n```swift\nimport PermissionKit\n\nlet responses = AskCenter.shared.responses(for: CommunicationTopic.self)\nfor await response in responses {\n    switch response.choice {\n    case .approved:\n        // 允许通信\n    case .denied:\n        // 拒绝通信\n    default:\n        break\n    }\n}\n```\n\n### 3.6 服务端通知\n\n当家长撤销对孩子使用某 App 的同意时，Apple 会通过 **App Store Server Notifications** 发送 `RESCIND_CONSENT` 类型通知。服务端收到后应锁定对应账号或限制功能，避免孩子在家长撤销同意后继续使用受限功能。\n\n### 3.7 权限描述与录制提示\n\n`Info.plist` 描述必须具体：\n\n```xml\n\u003Ckey>NSCameraUsageDescription\u003C/key>\n\u003Cstring>用于拍摄照片与录制视频，发布个人作品以及设置头像\u003C/string>\n\u003Ckey>NSMicrophoneUsageDescription\u003C/key>\n\u003Cstring>录制视频时采集音频，用于用户作品拍摄\u003C/string>\n```\n\n使用 ReplayKit 时，录制状态要持续可见；停止操作后立即销毁会话；禁止后台静默录屏。\n\n---\n\n## 四、测试与调试\n\n### 4.1 Sandbox 测试\n\niOS 26.2+ 提供 Sandbox Age Assurance 机制：\n\n1. 在真机 **Settings → Developer → Sandbox Apple Account → Manage → Age Assurance** 中选择测试场景。\n2. 使用沙盒账号登录（注意不要在 iCloud 主账号登录沙盒账号）。\n3. 重启 App，调用 API 即可看到对应年龄段返回。\n\n> 模拟器通常无法测试 Age Assurance 流程，必须使用真机。\n\n### 4.2 常见测试场景\n\n- 13 岁以下用户进入 App，公开社交入口是否被隐藏。\n- 家长拒绝同意后，App 是否正确限制功能。\n- 撤销同意通知到达后，服务端是否正确锁定账号。\n- 低版本 iOS 是否优雅降级到 App 内自有年龄校验。\n\n---\n\n## 五、高频拒审与修复\n\n### 5.1 年龄分级信息不匹配\n\n**拒审描述**：App 存在公开 UGC / 社交广场，但年龄分级问卷未如实申报。\n\n**修复**：如实修改问卷，或从产品上移除公开分发能力。\n\n### 5.2 找不到年龄保证机制\n\n**拒审描述**：We were unable to find Age Assurance mechanisms in the app。\n\n**修复**：接入 Declared Age Range API 并在 13 岁以下用户进入前限制功能；或者去掉公开社交能力后把问卷改回“否”。\n\n### 5.3 Guideline 2.1‑Information Needed\n\n**拒审描述**：需要 7 项材料。\n\n**修复**：按第二节模板补充 Notes、上传真机录屏、提供可用测试账号，在 Resolution Center 回复。\n\n### 5.4 录制缺少用户提示\n\n**拒审描述**：App 录制音视频，无可见状态提示。\n\n**修复**：录制期间常驻 UI 提示；按需申请权限，不要提前预请求。\n\n### 5.5 Missing purpose string\n\n**拒审描述**：ITMS‑90683 Missing purpose string。\n\n**修复**：补全 `NSCameraUsageDescription` / `NSMicrophoneUsageDescription`，文案写清业务用途。\n\n---\n\n## 六、上线检查清单\n\n- [ ] 新版年龄分级问卷如实填写，重点核对社交媒体、UGC、不受限网页访问三项。\n- [ ] 若勾选社交媒体 = 是：接入 Declared Age Range API，iOS 低版本有兜底，13 岁以下关闭公开社交能力。\n- [ ] `Info.plist` 相机、麦克风权限描述具体、清晰。\n- [ ] 音视频录制、屏幕录制有可视化提示，无后台静默采集。\n- [ ] 新 App 提审准备 2.1 全套材料：真机录屏、测试账号、设备清单、第三方服务清单、地区差异说明。\n- [ ] 测试账号审核期间可用，无 IP/时效限制；录屏作为附件上传，不使用网盘链接。\n- [ ] 涉及儿童/青少年通信的功能接入 PermissionKit，并处理家长同意/拒绝/撤销同意。\n- [ ] 服务端能接收并处理 `RESCIND_CONSENT` 等 App Store Server Notifications。\n- [ ] 海外多地区上架时，确认巴西 GRAC、澳大利亚、新加坡、美国德州/犹他州等本地分级或法规编号。\n\n---\n\n## 七、产品路线选择\n\n| 路线 | 做法 | 优点 | 代价 |\n|------|------|------|------|\n| 保留社交广场 | 问卷勾选“是”+ 接入 Age‑Assurance API + 未成年人限制 | 功能完整 | 开发、测试、合规成本高 |\n| 规避 Age‑Assurance | 删除公开广场，UGC 仅好友/本人可见，问卷勾选“否” | 无需接入 API，分级更灵活 | 产品形态受限 |\n\n> 如果目标市场包含欧盟或巴西的替代分发渠道，注意社交媒体问卷强制要求同样适用于 notarization 提交。\n\n---\n\n## 八、总结\n\n2026 年 App Store 的合规重点可以概括为三件事：\n\n1. **问卷如实化**：年龄分级问卷不再走过场，社交媒体、UGC 等选项直接影响产品页标签、家长控制和审核策略。\n2. **年龄保证代码化**：一旦产品涉及公开社交分发，就需要用 Declared Age Range API 在运行时判断用户年龄段，并针对未成年人做功能隔离。\n3. **审核材料完整化**：Guideline 2.1 的材料清单要提前准备，真机录屏、测试账号、服务清单缺一不可。\n\n把后台配置、客户端代码、服务端通知、测试流程串成闭环，才能在新规环境下稳定发版。\n\n---\n\n## 参考链接\n\n- [Apple 年龄保证框架官方说明](https://developer.apple.com/cn/support/age-assurance)\n- [App Store 年龄分级说明](https://developer.apple.com/cn/help/app-store-connect/reference/app-information/age-ratings-values-and-definitions)\n- [App Review Guidelines 2.1 App Completeness](https://developer.apple.com/cn/app-store/review/guidelines/#performance-app-completeness)\n- [App Review Guidelines 2.5.4 Data Collection and Storage](https://developer.apple.com/cn/app-store/review/guidelines/#privacy-data-collection-and-storage)\n- [WWDC25: Deliver age-appropriate experiences in your app](https://developer.apple.com/videos/play/wwdc2025/299)\n- [PermissionKit 官方文档](https://developer.apple.com/documentation/permissionkit)\n- [App Store Server Notifications](https://developer.apple.com/documentation/appstoreservernotifications)\n","2026 年 App Store 年龄分级、Age-Assurance API 与 Guideline 2.1 审核准备全指南，覆盖后台配置、客户端接入、PermissionKit 与上线清单，助力 iOS 团队合规过审。","",499668042977349,{"phone":15,"userId":13,"nickName":16,"vipType":17,"avatar":18,"sign":19,"createdAt":20},"13121171998","全栈老韩",1,"https://image.xinwei.ltd/images/IMG_5430.JPG","全栈工程师，擅长iOS App开发、前端（vue、react、nuxt、小程序&Taro）开发、Flutter、React Native、后端（midwayjs、golang、express、koa）开发、docker容器、seo优化等。","2024-01-01T16:14:30.305Z",2,{"id":21,"name":23},"IT技术",3,{"id":24,"name":26,"parentId":21},"iOS",[],0,"iOS App Store review, App Store Guidelines 2026, iOS 26, Age Assurance API, Declared Age Range API, App Store age rating"]