返回资讯中心
App Store 上架

App Store 年龄分级新规 2026|13+/16+/18+ 五级系统与 Declared Age Range API 开发者适配指南

2026-07-20 26分钟阅读星辰出海

App Store 年龄分级新规 2026|13+/16+/18+ 五级系统与 Declared Age Range API 开发者适配指南

2026 年 1 月 31 日是 Apple 给所有 iOS / iPadOS 开发者划出的第二个硬性 deadline:这一天起,App Store Connect 上的年龄分级系统从「4+ / 9+」两级扩为「4+ / 9+ / 13+ / 16+ / 18+」五级。配合五级分级,Apple 还推出了一组新问卷必填项Declared Age Range APIPermissionKitChild Account APIScreen Time API 3.0。这五项任何一项没跟到位,应用都会在审核环节或者区域上架环节被卡。

很多团队把它当作「审核小补丁」处理,结果提交后才发现:5+ 评级突然变成 13+,影响青少年下载;或新问卷里勾错了「无限制网页访问」直接被标 16+;或者在欧盟区域没实现 Declared Age Range API,被当地法规直接下架。

这篇文章把这些变化拆成 7 个部分:政策原文与时间线 → 五级分级对照 → 新问卷必填项 → Declared Age Range API 实战 → PermissionKit 与 Child Account API → 区域合规(澳大利亚 16+ / 越南 147 号令 / 巴西分级)→ Sandbox 测试与高频 FAQ。每节都尽量配 Swift / Objective-C 代码片段和 App Store Connect 操作路径,能直接照搬到工程里。

如果你已经看过《iOS 26 最低 SDK 要求与 App Store 审核新规 2026》和《App Store 审核被拒 2026 常见原因与申诉攻略》,可以把本文当作「年龄分级专章」配合阅读;如果是第一次接触 iOS 上架,建议先回看那两篇建立整体认知。


一、Apple 政策原文与时间线

先把 Apple 的官方要求摆在桌面上,避免后续讨论跑偏。

1.1 Apple Developer 官方公告

2025 年下半年,Apple 在 Developer News 分两批发布「Updated age ratings in App Store Connect」与「Age assurance frameworks and features」。核心内容如下:

  • 2026 年 1 月 31 日(已生效):所有 App 的年龄分级自动按新系统重算,开发者必须在此日期前为每个 App 回答新问卷,否则提交更新会被中断。
  • 2026 年 4 月 28 日(已生效):所有上传到 App Store Connect 的新应用和更新,必须使用 iOS 26 / iPadOS 26 SDK 或更高版本构建(参考 07-16 那篇 iOS 26 SDK 指南)。
  • 2026 年 6 月 18 日(已生效):澳大利亚 15+ 评级下线,合并为 16+;越南按 Decree 147 实施区域分级(00+ / 12+ / 16+ / 18+)。
  • iOS 26.0 起:Declared Age Range API(AgeRangeDeclaration.selfDeclared / guardianDeclared)可用。
  • iOS 26.2 起:新增 AgeRangeService.isEligibleForAgeFeaturesAgeRangeDeclaration.checkedByOtherMethod 等高级查询;PermissionKit(SignificantAppUpdateTopic)可用。
  • iOS 26.4 起:新增 AgeRangeService.requiredRegulatoryFeaturesAgeRangeService.showSignificantUpdateAcknowledgement 系统级确认流程。

1.2 为什么 2026 年分级变化比 2024 / 2025 年更剧烈

三个原因:

  1. 欧盟 DMA 与英国 Age Appropriate Design Code 双重压力:监管要求开发者必须主动识别未成年用户,Apple 把这个责任从「可选」变成「必选」并通过 Declared Age Range API 把工具下发。
  2. AI 与 UGC 内容井喷:套壳 AI 应用、UGC 短视频、AI 陪伴类 App 大量涌入,4+ / 9+ 两级已经无法准确描述风险。
  3. App 内付费与广告激增:订阅、抽卡、Loot Box 的边界越来越模糊,需要更细的分级让家长做决策。

二、2026 五级年龄分级完整对照

2.1 等级定义与典型内容

等级 适合年龄 典型内容举例(来自 Apple 官方问卷)
4+ 4 岁以上 不含令人反感内容;可能有用户生成内容、消息聊天、广告、偶尔竞赛
9+ 9 岁以上 健康/保健主题、抽奖箱、偶尔卡通或幻想暴力、枪支、低俗笑话、成人暗示、恐怖主题
13+ 13 岁以上 偶尔医疗或治疗内容、烟酒/毒品、性内容/裸露、现实暴力/模拟赌博;频繁竞赛、枪支、低俗笑话、恐怖主题、卡通暴力
16+ 16 岁以上 无限制网页访问、频繁成人或性暗示内容、医疗或治疗内容
18+ 18 岁以上 赌博、频繁模拟赌博、烟酒/毒品、性内容/裸露、现实暴力

注:等级是「按内容出现频率和敏感度」算出来的,不是开发者手动选择的(但开发者可以主动调高一级)。

2.2 与旧版的核心差异

维度 2025 旧版(2 级) 2026 新版(5 级)
分级数量 4+ / 9+ 4+ / 9+ / 13+ / 16+ / 18+
必填问卷 5-7 题 15+ 题(新增 App 内控件、功能、医疗健康、暴力主题四类)
区域影响 单一全球分级 区域单独分级(澳大利亚、越南、巴西等)
父母控制 仅靠系统设置 App 可通过 Declared Age Range API 主动判断
重要更新 PermissionKit 必须实现家长同意流程

2.3 关键判断规则

  • AI 助手和聊天机器人 必须算入敏感内容频率(哪怕你没有专门做 AI 内容)。
  • 无限制网页访问 单独触发 16+ 评级(哪怕主体内容是 4+)。
  • 广告 存在但被人工审核通过,不直接升级;但用户生成内容里的广告可能升级。
  • Loot Box(抽奖箱) 在澳大利亚 = 16+,全球其他地区默认 9+。

三、新版 App Store Connect 问卷必填项

3.1 问卷路径

App Store Connect → 我的 App → 选择 App → App 信息 → 年龄分级。每个 App 都要单独回答,新问卷共 4 大类 15 小题。

3.2 必填项清单

3.2.1 App 内控件(In-App Controls)

编号 题目 选项 影响
C1 是否包含有害内容拦截(Parental Controls) 是/否 是 → 可触发 4+ 基准线
C2 是否包含年龄确认(Age Assurance) 是/否 是 → 需配合 Declared Age Range API
C3 是否包含购买/沟通限制 是/否 是 → 影响青少年评级

3.2.2 功能(Capabilities)

编号 题目 选项 影响
F1 是否包含无限制网页访问 是/否 是 → 16+
F2 是否包含用户生成内容 是/否 是 → 至少 9+
F3 是否包含消息/聊天 是/否 是 → 至少 9+
F4 是否包含广告 是/否 是 → 至少 9+

3.2.3 医疗或健康主题

编号 题目 选项 影响
H1 是否包含医疗/治疗信息 否/偶尔/频繁 偶尔 → 9+,频繁 → 13+
H2 是否包含健康/保健主题 否/偶尔/频繁 偶尔 → 4+,频繁 → 9+

3.2.4 暴力主题

编号 题目 选项 影响
V1 卡通或非现实暴力 否/偶尔/频繁 偶尔 → 9+,频繁 → 13+
V2 现实暴力 否/偶尔/频繁 偶尔 → 13+,频繁 → 16+
V3 持续/详细暴力 否/偶尔/频繁 偶尔 → 16+,频繁 → 18+
V4 枪支或其他武器 否/偶尔/频繁 偶尔 → 9+,频繁 → 13+

3.3 主动调高分级的场景

如果你的产品策略要求用户必须满 16 岁(比如社交陪伴类 App),可以在回答问卷后手动调高一级:

App Store Connect → App 信息 → 年龄分级 → 选择更高级别 → 提交

调高后,App Store 产品页会直接显示你选择的等级(即开发者分配等级覆盖 Apple 计算等级)。这是 2026 年新增的能力。

3.4 常见踩坑

  • 漏选「无限制网页访问」:很多 App 用了 WKWebView 但没意识到属于无限制访问,提交后被自动标 16+。
  • Loot Box 误判:游戏中只要有付费开箱机制,澳大利亚区域一律 16+。
  • AI 助手漏报:哪怕是接了 OpenAI / Claude API 做对话,也要按 9+ 申报(频繁出现敏感内容会升 13+)。

四、Declared Age Range API 实战(iOS 26+)

4.1 API 是什么

AgeRangeService 是 iOS 26 新增的框架,让 App 在运行时向系统请求用户的年龄段。它返回的不是具体年龄,而是 Apple 定义的年龄区间(如 13-15 / 16-17 / 18+)。同时返回「确认方式」(用户自报 / 监护人确认 / 支付凭证 / 政府 ID 等)。

4.2 为什么必须用

根据 Apple 官方政策:

在法律要求的具体地区,开发者必须使用 Declared Age Range API 检查 App 用户的年龄。 Apple 通过 Apple Account 信息确认年龄,并将年龄类别共享给开发者。

不实现的后果:

  • 欧盟、英国 Age Appropriate Design Code 覆盖区域被当地监管下架
  • Kids Category 应用直接被拒(5.1.4 条款)
  • 家长在「屏幕使用时间」里给孩子的限制可能失效

4.3 基础调用(Swift)

import AgeRange

func requestAgeRange() async {
    do {
        let service = AgeRangeService.shared
        let response = try await service.requestAgeRange()
        
        switch response.ageRange {
        case .selfDeclared(let range):
            // 用户自己申报的年龄范围
            print("Self-declared: \(range)")
        case .guardianDeclared(let range):
            // 监护人代为申报
            print("Guardian-declared: \(range)")
        case .checkedByOtherMethod(let method, let range):
            // 通过其他方式确认(支付/政府ID等)
            print("Method: \(method), Range: \(range)")
        }
        
        // 检查是否符合年龄限制功能
        let isEligible = try await service.isEligibleForAgeFeatures()
        if isEligible {
            // 显示完整功能
        } else {
            // 限制功能
        }
    } catch {
        print("Age range request failed: \(error)")
    }
}

4.4 在重要更新时获取家长同意(PermissionKit, iOS 26.2+)

import PermissionKit

func handleSignificantUpdate() async {
    do {
        let topic = SignificantAppUpdateTopic(
            updateDescription: "新增 AI 陪伴对话功能"
        )
        let result = try await topic.requestConsent()
        
        switch result {
        case .granted:
            // 家长同意,继续展示新功能
            enableNewFeatures()
        case .denied:
            // 家长拒绝,限制访问
            restrictToSafeMode()
        }
    } catch {
        // 处理 consent 撤销等异常
    }
}

家长可以在系统设置里随时撤销同意。开发者必须监听 App Store Server Notifications 中的 RESCIND_CONSENT 通知:

// 后端收到通知后处理逻辑
func handleNotification(_ payload: [String: Any]) {
    guard let type = payload["notificationType"] as? String else { return }
    if type == "RESCIND_CONSENT" {
        // 立即关闭该 App 的访问能力
        disableAccount(payload["appAccountToken"] as? String)
    }
}

4.6 区域差异

区域 Declared Age Range 强制? 法规依据
欧盟 DMA + GDPR-K
英国 Age Appropriate Design Code
美国加州 推荐 COPPA + CCPA
韩国 青少年保护法
日本 推荐 青少年网络环境整备法
中国大陆 暂未明确
其他 全球可用但不强制

重要:API 在全球都可用,但只有在当地法规要求时才是强制的。但为了合规和未来监管趋势,强烈建议所有出海 App 接入


五、Child Account API 与 Sensitive Content Analysis 2.0

5.1 Child Account API

iOS 26 引入的 ChildAccountAPI 让 App 声明式响应当前登录用户的年龄段和监护人限制。和 Declared Age Range 的区别:

  • Declared Age Range:App 主动询问用户
  • Child Account:App 被动接收系统已确定的年龄段
import ChildAccount

func adaptToAccount() {
    let account = ChildAccountService.shared.currentAccount
    if account.isChildAccount {
        // 自动启用儿童模式
        disableInAppPurchase()
        enableParentalGate()
    }
}

5.2 Sensitive Content Analysis 2.0

iOS 17 引入的 SCSensitivityAnalyzer 原本只支持图像。iOS 26 扩展到视频、音频、文档

import SensitiveContentAnalysis

let analyzer = SCSensitivityAnalyzer()

// 图像检测
func checkImage(_ image: UIImage) async -> Bool {
    do {
        let isSensitive = try await analyzer.analyzeImage(image)
        return isSensitive
    } catch {
        return false
    }
}

// 视频检测(iOS 26+)
func checkVideo(_ url: URL) async -> Bool {
    do {
        let isSensitive = try await analyzer.analyzeVideo(url)
        return isSensitive
    } catch {
        return false
    }
}

关键点:检测完全在设备本地完成,数据不上传 Apple。返回结果只是 true/false,App 不会知道具体原因

5.3 Screen Time API 3.0(家长控制类 App 适用)

如果你的 App 本身就是家长控制类(如 Kidslox、Qustodio),iOS 26 的 Screen Time API 3.0 开放了第三方精细控制

能力 iOS 15-25 iOS 26(API 3.0)
App 屏蔽
单 App 每日时长限制 ❌(仅系统)
网站分类过滤 基础域名 分类 + 自定义规则
位置规则 ✅(基于位置的限制)
活动报告 ✅(需家长同意)
通信限制 仅系统 ✅(第三方白名单)

使用前必须申请 Family Controls entitlement(不是默认开通的,需要走 Apple 申请流程)。


六、区域合规:澳大利亚、越南、巴西

6.1 澳大利亚 16+ 合并(2026 年 6 月 18 日已生效)

  • 15+ 评级取消,原本评 15+ 的 App 全部升至 16+
  • 触发条件:无限制网页访问 / 频繁医疗内容 / Loot Box
  • 应对:6 月 18 日前在 App Store Connect 确认问卷答案准确

6.2 越南 Decree 147(2026 年 6 月 18 日已生效)

越南按 Decree 147 第 38 条实施 4 级分级:00+ / 12+ / 16+ / 18+

  • 在越南 App Store 上架必须使用越南分级
  • 系统根据你的问卷答案自动分配,无法手动选择
  • 涉及赌博、色情、烟酒的 App 在越南有额外限制

6.3 巴西分级(MJSP)

巴西由司法部(MJSP)独立分级,分为:AL / A6 / A10 / A12 / A14 / A16 / A18

  • 苹果直接采用 MJSP 分类,开发者不能干预
  • 固定赔率博彩 App 必须有 SPA 颁发的有效许可证
  • 在 App Store Connect「App 审核信息」中提供许可证细节

6.4 其他高风险区域

区域 法规 重点
欧盟 DMA + GDPR-K Declared Age Range API 必接
英国 AADC Child Account API 必接
韩国 青少年保护法 23:00-6:00 强制青少年锁定
俄罗斯 联邦法 436 VPN 工具必须提供家长模式
沙特 CITC 视讯/音频通话 App 需本地服务器

七、Sandbox 测试与高频 FAQ

7.1 Sandbox 测试年龄确认

iOS 26.2+ 提供了沙盒环境测试年龄确认流程,无需真实 Apple Account:

#if DEBUG
// 在 Xcode 26.2+ 中可设置测试用的年龄段
let mockResponse = AgeRangeDeclaration(
    selfDeclared: AgeRange(lower: 13, upper: 15),
    region: .europeanUnion
)
AgeRangeService.shared.setMockResponse(mockResponse)
#endif

测试场景:

  • 不同年龄范围(4+ / 9+ / 13+ / 16+ / 18+)
  • 区域限制(欧盟 / 加州 / 韩国)
  • 授权状态变更(拒绝 / 撤销)
  • Consent 撤销响应

7.2 高频 FAQ

Q1:13+ 评级会影响下载量吗?

会影响。家长在「屏幕使用时间」里给孩子的限制默认是 9+,被标 13+ 后这部分用户必须家长手动允许才能下载。但反过来,标 9+ 也能避免青少年误下载敏感内容。

Q2:不接 Declared Age Range API 能上架吗?

可以。Apple 不强制全球所有 App 接,但欧盟、英国、韩国等区域监管会强制要求。如果你的 App 涉及青少年、订阅、广告,建议接入。

Q3:Kids Category 还需要单独申请吗?

需要。Kids Category 申请条件:选择 5 岁以下 / 6-8 岁 / 9-11 岁分组 + 满足审核指南 1.3 / 5.1.4 + 提供 Parental Gate。

Q4:年龄分级选错会被拒吗?

会。开发者分配等级如果与 App 实际内容不符,会被 2.3.10(误导性元数据)拒审。

Q5:马甲包/App 矩阵如何统一管理问卷?

每个 App 单独回答问卷。建议建一个内部表格记录每个 App 的内容清单,对应到问卷选项,确保 50+ 个马甲包答卷一致。

Q6:游戏 Loot Box 在全球各地怎么算?

默认 9+。但在澳大利亚合并为 16+。日本/韩国按内容具体分析。

Q7:开发者可以调低等级吗?

不可以。开发者只能调高,不能调低。Apple 计算等级是最低保障。

Q8:旧 App 会被自动重新评级吗?

会。2026 年 1 月 31 日起,所有 App 自动按新系统重算。你可以在 App Store Connect → App 信息 → 年龄分级查看新等级。


八、最后:2026 年 7 月 20 日的实操清单

如果你今天/明天要提交更新,按这个顺序操作:

  1. 打开 App Store Connect → 选择要更新的 App → 进入「年龄分级」
  2. 回答新问卷(15+ 题)→ 提交
  3. 检查澳大利亚 / 越南 / 巴西区域分级是否准确
  4. 如果涉及青少年:在代码中集成 Declared Age Range API
  5. 如果有重大更新:集成 PermissionKit,处理 RESCIND_CONSENT
  6. Xcode 26 升级:iOS 26 SDK 是基础门槛(参考 iOS 26 指南)
  7. Sandbox 测试:在 Xcode 26.2+ 模拟不同年龄段、区域、撤销场景
  8. 提交审核 → 在备注栏写明「已按 2026 年新分级系统回答问卷」

整套流程跑完,你的 App 在 2026 年的合规姿态才算完整。年龄分级不是一个审核步骤,是产品策略的一部分。


相关阅读

外链参考