App Store 年齡驗證:德州、猶他、巴西
作者:Mehdi Azizi
發布於 ,13 分鐘
德州自 2026 年 6 月起由 App Store 驗證年齡並傳送年齡區間給你。巴西、猶他、澳洲:用 Declared Age Range 該寫哪些程式。
在德州,自 2026 年 6 月 4 日起,App Store 會驗證新帳號的年齡,並在你的 app 透過 Declared Age Range API 請求時,把帳號的年齡類別傳給你。在法律有要求的地方,由你負責讀取這個類別、在重大變更前取得家長同意,並處理家長撤回同意的情況。 巴西、猶他州、路易斯安那州和阿拉巴馬州各有各的時程,而 App Store 已經在澳洲、巴西和新加坡封鎖 18+ app,未確認為成年人的使用者無法下載。
我自己用 Expo 發布 iOS app,包括 Solys 和 TradaZen。這篇文章裡,我逐一整理各地區 Apple 和官方法條怎麼說,再列出你要寫的程式步驟。本指南不是法律建議:連 Apple 自己都請你就義務問題諮詢律師。 如果你要選擇 4+ 到 18+ 的分級,請改看App Store Connect 的年齡分級。
年齡驗證對你有什麼改變
根據Apple 關於 age assurance 的 FAQ,「developers are responsible for their own age restrictions」。在法律有要求的地方,Apple 會確認帳號持有人的年齡,並與你分享其年齡類別。在這些地區,你必須驗證使用你 app 的人的年齡。
有三件事會改變:
- 你收到的是年齡區間,永遠不是確切年齡。 例如 Apple 會告訴你「13 到 15 歲」,以及這個區間是怎麼判定的。
- app 的重大變更可能需要家長同意。 什麼算重大,由你依適用法律決定。
- 家長可以撤回同意。 這時 Apple 會讓 app 在孩子的裝置上無法開啟,而如果你有設定,你的伺服器會收到
RESCIND_CONSENT通知。
不變的部分:同一份 FAQ 指出,「there are no changes to the App Review process」。iOS 18 或更早版本上的既有帳號不受影響。至於 API 本身則全球都能用:在受規範地區以外,使用者自行選擇是否分享年齡區間。
這些法律不會改變審核。Apple 把年齡傳給你,要求你使用它的是法律。
德州:SB 2420 法自 2026 年 6 月 4 日起適用
根據其通過的法條,德州 SB 2420 法,又稱 App Store Accountability Act(第 121.001 條),原定於 2026 年 1 月 1 日生效。2025 年 12 月 23 日,Apple 宣布一項地方法院的禁制令暫停了該法的施行。Apple 暫緩了計畫,並把工具保留在 sandbox。
2026 年 6 月 3 日,Apple 宣布一項法院裁定解除了禁制令:聯邦第五巡迴上訴法院在上訴期間暫停了禁制令的效力。自 2026 年 6 月 4 日起,德州的新 Apple 帳號都受該法規範。2026 年 7 月 6 日,美國最高法院拒絕撤銷這項暫停(案號 25A1390)。這是緊急裁定,不是實體判決。截至 2026 年 10 月 27 日,我沒找到任何上訴實體判決:法律目前適用,但情況仍可能變化。
App Store 在德州做什麼
德州的每個新帳號,App Store 都會驗證年齡。對未滿 18 歲的未成年人,它還會針對三種行為請求家長同意:下載 app、進行 App 內購買、使用重大變更後的內容。家長可以對任何已核准的 app 撤回同意。
在2025 年 11 月 4 日的公告中,Apple 詳列了法律的四個類別:未滿 13 歲、13 到 15 歲、16 和 17 歲、18 歲以上。Apple 也警告,這條法律可能迫使業者「just to download an app」就收集敏感資料,連天氣 app 也一樣。法條針對的是任何透過商店在德州上架 app 的開發者(第 121.051 條):簡單的 app 也不在範圍之外。
法律對開發者的要求
SB 2420 的條文為你規定了四項義務:
- 用商店提供的資料驗證年齡(第 121.054 條):每位使用者的類別,以及未成年人是否已取得家長同意。
- 這些資料只能用於年齡相關用途(第 121.055 條):限制措施、遵守法律、安全設定。驗證完成後就要刪除。
- 在服務條款或隱私權政策有任何重大變更前通知商店(第 121.053 條)。
- 為 app 及 app 內每項可購買項目設定年齡分級(第 121.052 條)。在 App Store 上,app 的分級來自 App Store Connect 的問卷。
法律認定的重大變更包括:改變收集或分享的資料、影響年齡分級、新增購買項目或廣告,或明顯改變功能或使用體驗。Apple 補充,德州把年齡分級的改變視為重大變更。
猶他、路易斯安那、阿拉巴馬:2027 年的法律
Apple 2026 年 2 月 24 日的公告定了兩個日期。對新帳號,API 原定自 2026 年 5 月 6 日起在猶他州、自 2026 年 7 月 1 日起在路易斯安那州傳送年齡類別。新的訊號會告訴你:年齡規則是否適用於該使用者、他是否必須分享年齡區間,以及重大變更是否需要家長核准。這些州的成年人可能會收到重大變更通知:這時 Apple 會要求你提供清楚的變更說明。
之後,這兩條法律都被修改了:
- 猶他:H.B. 498 修改了 2025 年的 App Store Accountability Act(S.B. 142)。根據其通過的法條,商店和開發者的義務自 2027 年 5 月 6 日開始。重大變更的定義變得更窄:服務條款或隱私權政策的變更,且改變了收集的資料、年齡分級,或新增第一個 App 內購買或第一則廣告。
- 路易斯安那:HB 977 法於2026 年 5 月 15 日簽署,成為Act 185。它讓 2025 年的法律(HB 570,即 Act 481)不會生效,並以新規則取代,自 2027 年 7 月 1 日起適用。
兩部法條都要求開發者透過商店的工具驗證年齡類別,並在重大變更時通知商店。猶他禁止分享這些資料,路易斯安那禁止出售。
阿拉巴馬採用同樣的模式。根據其通過的法條,HB 161 法於 2026 年 2 月 17 日簽署,成為 Act 2026-59,自 2027 年 1 月 1 日起適用。開發者要透過商店的工具驗證年齡類別和家長同意、在任何重大變更時通知商店,且這些資料只能用於年齡、法律與安全用途。
截至 2026 年 10 月 27 日,Apple 沒有就猶他和路易斯安那的延後,或阿拉巴馬,發布任何公告:請實際檢查 API 對這些州的使用者回傳了什麼。我的看法:工具比義務先到位,所以趁這幾個月寫好程式並測試。
巴西:ECA Digital 自 2026 年 3 月 17 日起生效
《兒童及青少年數位法》(ECA Digital)是2025 年 9 月 17 日第 15.211 號法律。其第 41-A 條規定自 2026 年 3 月 17 日起生效。有三條和你有關:
- 第 12 條:商店和作業系統要評估年齡或年齡區間,並透過 API 把年齡訊號傳給 app。兒童或青少年下載 app 需要家長自由且知情的同意。
- 第 13 條:年齡驗證資料只能用於年齡驗證。
- 第 14 條:以兒童和青少年為對象,或他們可能使用的 app,必須能接收這個訊號。不論商店怎麼做,app 都要保有自己封鎖不適當內容的機制。
在 Apple 這邊,年齡類別會在使用者或家長同意時分享。在問卷中申報付費戰利品箱的 app,在巴西商店會變成 18+。如果你在巴西提供替代付款方式,Apple 關於巴西發行的頁面要求你為未滿 18 歲的使用者把它放在家長門檻之後,且不能向他們提供網站購買。這個選項的抽成和步驟請見巴西替代付款方式指南。
該法把監管交給一個獨立行政機關。律師事務所引用的施行細則和該機關的指南有進一步說明:我沒有讀過它們的官方原文。調整 app 之前,請先找巴西法律專業人士確認。
澳洲和新加坡:18+ app 遭封鎖
自 2026 年 2 月 24 日起,在澳洲、巴西和新加坡,只要使用者未被確認為成年人,App Store 就會封鎖 18+ app 的下載。App Store 會自動進行這項驗證。Apple 也說明,你可能有自己的義務要確認使用者已成年,而 API 會傳送訊號協助你。Apple 沒有指明涉及哪些法律。
澳洲另外有兩條 Apple 公告過的規則:
- 社群網路:自 2025 年 12 月 10 日起,部分社群平台必須禁止未滿 16 歲者擁有帳號。相關開發者要停用未滿 16 歲者的既有帳號,並監控註冊。
- 年齡分級:自 2026 年 6 月 18 日起,澳洲取消 15+ 分級。含不受限網頁瀏覽、頻繁醫療資訊或付費戰利品箱的 15+ app 改為 16+。分級的選擇在年齡問卷中設定。
新加坡方面,Apple 除了封鎖 18+ app 之外沒有其他公告。
總表:適用什麼、何時開始、你要做什麼
這張表整理前面各節內容,截至 2026 年 10 月 27 日。「Apple」是 App Store 開始執行規則的日期,「法律」是法條義務開始的日期。
| 地區 | 日期 | App Store | 你要做什麼 |
|---|---|---|---|
| 德州 | 2026 年 6 月 4 日 | 驗證年齡、家長同意 | 年齡區間、同意、撤回 |
| 猶他 | 法律 2027 年 5 月 6 日 | 已於 2026 年公告傳送類別 | 2027 年 5 月 6 日前寫好程式 |
| 路易斯安那 | 法律 2027 年 7 月 1 日 | 已於 2026 年公告傳送類別 | 2027 年 7 月 1 日前寫好程式 |
| 阿拉巴馬 | 法律 2027 年 1 月 1 日 | 尚無公告 | 2027 年 1 月 1 日前寫好程式 |
| 巴西 | Apple 2026 年 2 月 24 日,法律 2026 年 3 月 17 日 | 同意時傳送類別,封鎖 18+ | 讀取訊號、過濾內容 |
| 澳洲 | 2026 年 2 月 24 日 | 封鎖 18+ | 社群網路:不得有未滿 16 歲者 |
| 新加坡 | 2026 年 2 月 24 日 | 封鎖 18+ | 確認你自己的義務 |
你要寫的程式:五個步驟
根據 Apple 的 FAQ,你必須用 iOS 26.2 和 iPadOS 26.2 或更新的 SDK,搭配 Xcode 26.2(17C52)或更新版本編譯。接著在 target 上啟用 Declared Age Range capability:它會加入 com.apple.developer.declared-age-range entitlement,這是API 文件要求的。
- 確認這位使用者是否受某條法律規範。 自 iOS 26.4 起,
requiredRegulatoryFeatures會回傳啟用中的規則:declaredAgeRangeRequired、significantAppChangeRequiresParentalConsent、significantAppChangeRequiresAdultNotification。在 iOS 26.2 上,isEligibleForAgeFeatures已經能告訴你使用者是否適用年齡相關功能。 - 請求年齡區間。
requestAgeRange(ageGates:_:_:in:)最多接受三個年齡門檻,例如 13、16 和 18,以對應法律的類別。在法律自訂門檻的地方,回應會依法律而不是依你的設定。回應是.sharing(range:)或.declinedSharing。年齡區間包含lowerBound、upperBound和ageRangeDeclaration:由使用者自行申報、由家長申報,或已確認。 - 處理重大變更。 對未成年人,PermissionKit 和
SignificantAppUpdateTopic會請求家長同意,家長會讀到你的說明。在家長同意之前,你要封鎖新功能,甚至整個 app。對成年人,自 iOS 26.4 起,showSignificantUpdateAcknowledgment(in:updateDescription:)會顯示系統表單。StoreKit 的ageRatingCode屬性會給出裝置上目前的年齡分級:拿它來比對,找出分級變動。 - 監聽同意撤回。 啟用第 2 版的 App Store Server Notifications,並處理
RESCIND_CONSENT類型。Apple 已經會封鎖 app。伺服器端則由你處理這次撤回,例如暫停該帳號的存取權。如果你的通知經過 RevenueCat,它可以轉送到你的伺服器。它的頁面沒有提到這個類型:請在 sandbox 確認它真的有送達。 - 在 sandbox 測試。 開啟開發者模式,打開 Settings,再進入 Developer。在你的 sandbox Apple 帳號下,依 Apple 文件的英文名稱,選擇 Manage,再選 Age Assurance 或 Revoke App Consent。Apple 的測試頁面提供六種情境,從「未滿 13 歲,變更已核准」到「18 歲以上,年齡已確認,變更適用」。撤回同意的選單會要求輸入你的 bundle identifier,並在你的伺服器上觸發
RESCIND_CONSENT。
以下是一段 Swift 草稿,依 Apple 文件中的函式簽名寫成,請依你的 app 調整:
import DeclaredAgeRange
import UIKit
@available(iOS 26.4, *)
func lireTrancheAge(depuis vc: UIViewController) async throws {
let service = AgeRangeService.shared
let regles = try await service.requiredRegulatoryFeatures
guard regles.contains(.declaredAgeRangeRequired) else { return }
let reponse = try await service.requestAgeRange(ageGates: 13, 16, 18, in: vc)
if case .sharing(let tranche) = reponse {
// tranche.lowerBound, tranche.upperBound, tranche.ageRangeDeclaration
}
}
在 sandbox 中,對成年人,PermissionKit 會拋出 AskError.notAvailable 錯誤而不是回應:這是預期行為,成年人不需要家長同意。
使用 Expo 或 React Native
Expo 發布了 expo-age-range 模組。我在 2026 年 10 月 27 日重讀它的文件,它提供 requestAgeRangeAsync、isEligibleForAgeFeaturesAsync(iOS 26.2)、getRequiredRegulatoryFeaturesAsync 和 showSignificantUpdateAcknowledgmentAsync(iOS 26.4)。entitlement 要在 Expo 設定的 ios.entitlements 中宣告。
有兩個限制要知道:
- 在 iOS 26 之前,模組會回應
lowerBound: 18,和成年人一樣。 不要把這個回應當成驗證結果。 - Expo 文件沒有提到 PermissionKit,也沒有提到
ageRatingCode。 要請求家長同意,請準備一個原生模組,或在寫程式前重讀文件。RESCIND_CONSENT在伺服器端處理,不在 app 裡。
這是原生模組:需要重新 build,不能用 OTA 更新。流程和用 EAS 把 Expo app 發布到 App Store相同。
你從法國發布:你會受影響嗎?
Apple 的 FAQ 沒有提到開發者所在的國家。任何合規問題,它都請你諮詢法律顧問。德州法條針對的是透過商店在德州上架 app 的開發者(第 121.051 條)。猶他和路易斯安那的法條把開發者定義為擁有或控制在該州可取得之 app 的人,沒有地點條件。
我的看法:只要你的 app 在這些地區上架,就假設規則適用於你。 你無法只排除德州,因為上架地區在 App Store Connect 中是按國家設定的。為了避開這個問題而下架美國或巴西,會讓你失去兩個大市場。
資料方面,年齡區間仍屬個人資料,而德州、猶他、阿拉巴馬和巴西的法條都把它的用途限制在年齡相關。Apple 的開發者計畫授權協議另有規定(第 3.3.3(O) 條):API 用於讓你的 app 依年齡調整或遵守法律,其資料不得出售,也不得分享給資料仲介。請依guideline 5.1.1 的資料收集規則處理,並重讀guideline 5.1.2 的資料分享規則:這些法律是額外疊加的。
下次更新前的檢查清單
- 列出你的 app 上架的地區:美國、巴西、澳洲、新加坡。
- 用 Xcode 26.2 或更新版本編譯,並啟用 Declared Age Range capability。
- 呼叫
requiredRegulatoryFeatures,再用 13、16、18 歲門檻呼叫requestAgeRange。 - 寫下對你的 app 而言什麼算重大變更,並請法律專業人士確認。
- 接上家長同意請求(PermissionKit)和給成年人的表單。
- 啟用第 2 版伺服器通知,並處理
RESCIND_CONSENT。 - 跑完六種 sandbox 情境,以及一次同意撤回。
- 檢查你的年齡問卷答案:付費戰利品箱在巴西會變成 18+,而不開放給未滿 13 歲者的社群網路必須使用 API。
我查證了什麼、何時查證
2026 年 10 月 27 日重讀。日期和義務來自 Apple Developer 的公告、FAQ、文件、開發者授權協議和審核規則,各法律(德州、猶他、路易斯安那、阿拉巴馬、巴西)通過的法條,以及最高法院的案件紀錄。本指南並非根據我 app 中的任何整合:程式碼是依 Apple 函式簽名寫成的草稿,不是經過測試的整合。巴西的施行細則、澳洲和新加坡的法律,以及美國其他州的法律都沒有讀過。
常見問題
Declared Age Range API 是什麼?
這是 Apple 用來請求使用者年齡區間的 API,自 iOS 26 起全球可用。在法律有要求的地方,Apple 會確認帳號年齡並傳送其類別。其他地方則由使用者選擇是否分享。
分級 18+ 的 app 也要使用這個 API 嗎?
要。Apple 的 FAQ 寫明:在法律有要求的地區,即使是 18+ app,你也必須用 API 驗證使用者年齡。App Store 在澳洲、巴西和新加坡的封鎖,不能取代你自己的義務。
如果我不用這個 API,Apple 會拒絕我的 app 嗎?
根據 Apple 的 FAQ,App Review 流程不會因這些法律而改變。義務來自當地法律,不是來自審核。不過,Apple 已有三條規則要求年齡控管。如果你申報的是不開放給未滿 13 歲者的社群網路,Time Allowances 公告要求你至少使用這個 API。審核規則要求創作者 app(1.2.1)以及提供 mini-app、小遊戲或聊天機器人的 app(4.7.5)依已驗證或申報的年齡限制存取。另外,guideline 2.3.6 一直要求你誠實填寫年齡問卷。
對 Apple 而言,什麼是重大變更?
Apple 讓你依適用法律自行決定,並請你諮詢律師。德州法條列出的是:收集的資料、年齡分級、購買項目、廣告的變更,或功能的明顯變更。修改後的猶他法條和阿拉巴馬法條沒有納入最後這一點,路易斯安那的則保留了。
家長撤回同意時會發生什麼事?
Apple 會讓 app 在孩子的裝置上無法開啟。如果你啟用了第 2 版 App Store Server Notifications,你的伺服器會收到 RESCIND_CONSENT 通知。
德州法律適用於法國開發者嗎?
Apple 沒有表態,請你諮詢法律顧問。德州法條針對的是透過商店在德州上架 app 的開發者,沒有提到所在國家。我的看法:如果你的 app 在美國上架,它就在德州上架,所以就當作法律適用於你。
沒有未成年帳號,要怎麼測試年齡驗證?
用 sandbox,自 iOS 26.2 起可用。在 Settings 裡進入 Developer,你的 sandbox Apple 帳號會提供現成的年齡情境,以及針對你的 bundle identifier 的模擬同意撤回。
資料來源
- Age assurance frameworks Q&A,Apple Developer FAQ。
- Apple Developer 公告:2025 年 11 月 4 日、2025 年 12 月 8 日、2025 年 12 月 23 日、2026 年 2 月 24 日、2026 年 5 月 21 日、2026 年 6 月 3 日和2026 年 6 月 8 日。
- 法條:德州 SB 2420、猶他 H.B. 498、路易斯安那 Act 185、阿拉巴馬 HB 161、巴西第 15.211 號法律。
- Apple 規則:App Review Guidelines、開發者計畫授權協議。
- 最高法院案件紀錄,案號 25A1390。
- Apple 文件:Declared Age Range、sandbox 測試、伺服器通知類型。
- expo-age-range,Expo 文件。
下次更新之前
送出下一個版本前,先做免費診斷:它會告訴你專案真正卡在哪裡,並寄給你我的 Apple 防拒絕檢查清單。
Apple Review Kit 收錄了我的送審前檢查清單、我修正過的拒絕案例,以及兩個 Claude Code skill:它們會檢查你的專案和商店頁面,並在 Apple 拒絕時幫你準備回覆。完整做法請見被 Apple 拒絕的 app頁面。