tvOS 審查改進建議:一個含 WebKit 依賴的 App 靜態檢驗示例
日期:2026-01-14
前言與目的
這篇文章的目的,是分享一個中立、可重現的靜態檢驗流程,展示我們如何在不解密、不動態注入、不嘗試繞過審核機制的情況下,對一個 tvOS App 進行「是否涉及非公開 API」的檢查。
目標不是指控或貼標,而是鼓勵平台持續改善審查一致性:讓相同標準可以穩定落地,避免「有些 App 被拒、有些 App 卻能上架」的不公平感。
檢驗範圍與原則
- 範圍:只做靜態檢查(binary 依賴、metadata),不嘗試解密、不做逆向繞過。
- 原則:所有結論只建立在可復現的事實與明確的限制說明上。
方法總覽(非侵入式)
以下流程可在本地完成,且不需要破解或動態分析:
- 檢查 App 結構與主程式架構
- 讀取 Info.plist 了解平台與版本資訊
- 檢查 App Store 加密資訊(避免超出合理推論)
- 列出動態連結框架(關鍵)
- 檢查 tvOS SDK 公開框架清單
- 掃描 Obj‑C 類別名稱(僅做高層觀察)
- 清楚聲明限制與無法確認之處
主要觀察發現(精簡版)
1) App 與其內部 framework 連結到 WebKit.framework
- 主程式與內部
HSBBrowser.framework 皆動態連結 /System/Library/Frameworks/WebKit.framework/WebKit。
2) tvOS SDK 中沒有公開的 WebKit.framework
- 在 AppleTVOS SDK 的
/System/Library/Frameworks/ 中,找不到 WebKit.framework。
3) App 為 App Store 加密版本(FairPlay)
cryptid 1 表示二進位已加密;因此無法可靠抽取方法 selector 或細節。
4) 僅能做到「框架層級」的證據
- 我們能確定的是「有無連結 WebKit.framework」,而不是「實際呼叫了哪些類或 API」。
- 換言之:可疑性成立,但具體 API 細節不可確認。