BotsUP.
服務項目案例研究聯絡我們
BotsUP.

新型態軟體顧問公司。從產品策略、新產品開發、AI Agent 整合到長期維運,一站式交付可用、可維護、可持續的軟體產品。

BotsUP LLC

30 N Gould St Ste N

Sheridan, WY 82801

矽基崛起有限公司

106092 台北市大安區

仁愛路四段34號2樓

快速連結

  • 服務項目
  • 案例
  • 研究
  • 聯絡我們
  • 加入我們

Our Products

產品

  • Agent2PDF
  • BotsUP Visibility Console

框架

  • BotsUP Content Pipeline
  • BotsUP Multi-Agent Framework
其他品牌矽基遊戲工作室矽基崛起出版社矽基時代 [Si]gnals

© 2026 BotsUP LLC. 矽基崛起有限公司 All rights reserved.

隱私政策服務條款
返回研究

iOS 審核被拒的 10 個真實案例:BotsUP 維運紀錄

2026-02-15 · Vincent Liaw · 12 分鐘閱讀

我們實際踩過與在業界常見的 10 個 iOS 審核被拒案例。每個案例都對應到具體的 App Store Review Guideline 條目,附上拒信原文、修法與事前 checklist,幫你把被拒的機會壓到最低。

TL;DR

  • 我們在 水滴發票、間歇健走、OnReel、Agent2PDF 這些 App 的上架與維運過程裡,累積了各種被拒又重上的紀錄;被拒不是失敗,流程沒跑對才是。
  • 最常踩的 3 條:Guideline 2.1(Crash / 走不完的 flow)、2.3(Metadata 與截圖不一致)、3.1.1(用非 IAP 賣數位內容)。
  • 2024 年 Apple 強制 Privacy Manifest 後,5.1.1 相關被拒暴增;很多老 App 只是照舊 resubmit 就中鏢。
  • 被拒通常 24–48 小時內可以修完重送,關鍵是回 App Review Notes 寫清楚做了什麼、把 Resolution Center 當客服對話在經營。
  • 不要等被拒才準備授權文件、測試帳號、影片。這三樣是加速審核最有效的工具。

先講結論:10 個案例 at-a-glance

#Guideline典型情境來源
12.1 App Completeness提交版本 crash / flow 點不到BotsUP 踩過
22.3 Accurate MetadataScreenshot 含未上架功能 / App 外文字間歇健走第一版
34.0 Minimum Functionality單頁 + 一顆按鈕「太簡單」業界常見
44.3 Design: Spam多個高相似度白牌 App業界常見
55.1.1 Privacy Manifest缺 Privacy Manifest / reason code 錯水滴發票維運踩過
65.1.1(v) Account Sign-In有 Google/Facebook 但缺 Sign in with Apple業界常見
73.1.1 In-App Purchase在 App 內導到網頁買數位內容OnReel 類型常見
82.5.1 Software Requirements使用 private API / undocumented framework業界常見
94.7 HTML5 Games, Bots, etc.純 WebView 套殼 App業界常見
101.1.6 Objectionable Content: Legal涉政府 API / 法規,缺授權說明水滴發票初次送審

案例 1 — Guideline 2.1:送出的版本自己 crash

情境:最常見、最尷尬。開發機跑得好好的,一上 TestFlight 給審核員點某個入口直接 crash;或是某個 flow 在特定 iOS 版本 / 舊機型走不完。

拒信常見措辭:

We found that your app crashed on iPhone running iOS 17.x, which is not in compliance with the App Store Review Guidelines. 我們發現你的 App 在某台 iPhone 執行 iOS 17.x 時 crash,不符合審核規範。

怎麼修:

  • 打開 Xcode Organizer → Crashes 或 App Store Connect → TestFlight → Crashes,把 symbolicated stack trace 抓出來。
  • 如果是偶發,安裝 Firebase Crashlytics / Sentry 到下一版,重送時在 Review Notes 補一句「已加上 crash reporting 並在此版本修復 X」。
  • 找不到 repro?直接下載 Apple 附的 .crash 檔到 Xcode 裡對照 dSYM。

怎麼預防:

  • 上架前 TestFlight 跑至少 48 小時,團隊至少 3–5 人在 2 種 iOS 版本、2 種機型(老 + 新)各走一次主要 flow。
  • 在 App Review Notes 附測試帳號(含密碼)與一條「走完主 flow」的逐步說明。BotsUP 在 水滴發票 的 major release 每次都會附 3 組測試帳號,審核通過率肉眼可見上升。
  • 離線 / 弱網 / 權限拒絕這三種狀態一定要測到。審核員很常把網路關掉試你的 App。

案例 2 — Guideline 2.3:Screenshot 含未上架功能或 App 外文字

情境:截圖放了實際包裡沒有的功能、或合成圖多了一段文案。Apple 對 metadata 與實際 App 的一致性非常嚴格。

拒信常見措辭:

We noticed that your app's screenshots include content that does not sufficiently reflect the app in use. 你的 App 截圖所呈現的內容,並未真實反映 App 實際使用情形。

BotsUP 踩過:間歇健走 第一次送審被退,就是截圖上我們加了一句 App 外的標語(像是宣傳詞「每天 30 分鐘」)。審核員判這一句 App 內找不到對應文字 → metadata 不一致。修法是全數重新截一組「把文字換成 App 內實際會出現的文案」。

怎麼修:

  • 截圖不要加任何 App UI 之外的廣告文案;若要加,確保 App 實際畫面找得到同義敘述。
  • 不要塞「即將上線」、「Beta 中」的 badge,審核員會判定是 misleading。
  • 不要有其他 App 的 UI 或 logo(例如把 Line 分享截在背景)。

怎麼預防:

  • 定一個規則:截圖只能從 TestFlight 包用 Simulator 或實機錄出來,不許在 Figma 後製加文字。
  • 每次送審之前,照 Guideline 2.3 條列檢查一次:價格、功能、截圖、描述、關鍵字、支援網址。

案例 3 — Guideline 4.0:Minimum Functionality

情境:功能過於單薄,Apple 判定沒有實質價值。經典:「每日金句」、「單畫面計算機」、「只會顯示一張圖的 App」。

拒信常見措辭:

Your app provides a limited user experience as it is not sufficiently different from a mobile browsing experience. 你的 App 所提供的體驗過於有限,與直接用行動瀏覽器看網頁沒有本質差異。

怎麼修:

  • 加上離線功能、本地資料、通知、Widget、Shortcuts 整合 — 任何「網頁做不到」的能力。
  • 若定位是工具,把它做到「離線也可用」、「有本地資料庫」、「iOS 原生能力(Live Activity、Share Extension、Watch App)」其中至少 2 條。

怎麼預防:

  • 在送審之前問自己:「如果我把這個功能做成網頁,使用者少掉哪些東西?」答不出來就不要送。
  • 資訊型 App 一律再加至少一個互動功能(收藏、筆記、本地搜尋、分享到 iMessage)。

案例 4 — Guideline 4.3:Spam(白牌 App 農場)

情境:用同一份 codebase 幫多家客戶換 logo/顏色上架。Apple 很討厭這種「同一隻模板生 50 個 App」的行為。

拒信常見措辭:

We noticed that your app provides the same feature set as other apps submitted to the App Store; simply submitting many similar versions of the same app is considered spam. 我們注意到你的 App 功能與其他已送審的 App 雷同;大量送出相似版本會被視為垃圾 App。

怎麼修:

  • 換一套開發者帳號(走客戶自家 Apple Developer Account,而不是用你公司帳號批量上架)。
  • 每一隻 App 要有實質差異:不同的內容、不同的使用族群、獨立的資料後台。
  • 若真的是「系列」,改用 content variant(同一隻 App 內切換模式)而非多隻獨立 App。

怎麼預防:

  • 接多個同性質客戶(例如補習班、健身房)要上架時,不要用你家帳號代送,要 client 自己申請 Developer Program。
  • 白牌合約一開始就寫明「App Store 送審由甲方(客戶)自備帳號並負責被拒風險」。

案例 5 — Guideline 5.1.1:Privacy Manifest 缺失或 reason code 錯誤

情境:2024 年 5 月起 Apple 強制要求 App 與第三方 SDK 都要附 PrivacyInfo.xcprivacy,宣告使用哪些 Required Reason API(UserDefaults、File timestamp、Disk space 等)並填正確的 reason code。

拒信常見措辭:

ITMS-91053: Missing API declaration. Your app's code references one or more APIs that require reasons, but the PrivacyInfo.xcprivacy file does not provide approved reasons. ITMS-91053:缺少 API 宣告。你的 App 使用了需要原因的 API,但 PrivacyInfo.xcprivacy 中沒有提供核可原因。

BotsUP 踩過:水滴發票 一次小改維運版本因為某第三方分析 SDK 沒跟上 Apple 的 Privacy Manifest 要求,整個包被退。修法是升級 SDK 到最新版、自家 App 的 PrivacyInfo.xcprivacy 補上 NSPrivacyAccessedAPICategoryUserDefaults 的 reason code CA92.1。

怎麼修:

  • 用 Xcode 15+ 編譯時,Build Log 會列出哪些 API 觸發需要 declaration。對照 Apple 官方清單 把 reason code 填進 Manifest。
  • 第三方 SDK 過舊,升級到作者釋出的「Privacy Manifest ready」版本。找不到?換 SDK。

怎麼預防:

  • 每季度檢查所有 SDK 版本與其 Privacy Manifest 支援狀況。
  • CI 加一條:build 完成後自動檢查 PrivacyInfo.xcprivacy 存在且包含你預期會使用到的 API category。

案例 6 — Guideline 5.1.1(v):有第三方登入就必須同時提供 Sign in with Apple

情境:App 提供 Google / Facebook / Line / Twitter 登入,但沒有放 Sign in with Apple。Apple 從 2020 起強制這條。

拒信常見措辭:

Your app uses a third-party login service, but does not offer Sign in with Apple as an equivalent option. 你的 App 使用第三方登入服務,但未提供 Sign in with Apple 作為對等選項。

怎麼修:

  • 加上 Sign in with Apple,登入位階要跟其他選項同一列、字體大小不得刻意弱化。
  • 後端要能處理 Apple 的 email relay(<hash>@privaterelay.appleid.com)並允許用戶日後解除綁定。

怎麼預防:

  • 在 UI 設計階段就把 Sign in with Apple 畫進 mockup。改版時一起測「刪除帳號」流程,Guideline 5.1.1(v) 也規定了。

案例 7 — Guideline 3.1.1:用非 IAP 賣數位內容

情境:App 內「看更多內容請升級」的按鈕連到網頁付費(Stripe、綠界、街口),繞開 Apple 30% 抽成。這條被盯非常緊。

拒信常見措辭:

Your app, or its metadata, enables the purchase of content or services intended to be consumed within the app, by means other than in-app purchase. 你的 App(或 metadata)允許使用者以 IAP 以外的方式購買 App 內使用的內容或服務。

怎麼修:

  • 數位內容(解鎖章節、訂閱看影片、AI 額度)一律走 StoreKit 的 IAP / Subscription。
  • 若是「實體商品或服務」(例如叫車、訂餐、賣衣服)才能走外部金流 — 但介面不能有任何字樣誘導用戶去網頁購買數位內容。
  • 有條件的例外:Reader apps、Apple 的 External Link Entitlement — 都需要額外申請,不要預設能用。

怎麼預防:

  • 在架構階段就分清楚「這個付費是實體 or 數位」。OnReel 這種內容型 App(台灣原創短劇)就是典型必須走 IAP 訂閱、不能自建金流的情境。
  • 做 Subscription 上架之前先把 Product ID、試用期、價格階層在 App Store Connect 建好並連到 Xcode build。

案例 8 — Guideline 2.5.1:Private API / Undocumented Framework

情境:App 呼叫了 Apple 未公開的 API(例如用 runtime 抓 _systemStatus、或從舊 Jailbreak SDK 留下的 symbol)。過去有些開發者為了抓電池、記憶體細節會這樣做。

拒信常見措辭:

Your app uses or references the following non-public APIs: _someInternalMethod. The use of non-public APIs is not permitted. 你的 App 使用或引用了以下非公開 API,這是不被允許的。

怎麼修:

  • 自家 code 搜 underscore-prefixed selectors、dlsym、NSClassFromString("_Internal...") 這類痕跡。
  • 第三方 SDK 的問題,直接聯絡作者或換掉。常見踩雷是很老的廣告 SDK 或舊版 push 服務。

怎麼預防:

  • CI 加一條 nm / strings 掃描,檢查 binary 是否包含已知 private selector 清單。
  • 換 SDK 優先挑有持續更新、每年跟 Xcode 主線的。

案例 9 — Guideline 4.7:純 WebView 套殼 App

情境:客戶說「我官網都做好了,幫我包一個 App 就好」。結果整隻 App 打開就是一個 WKWebView 顯示 https://yoursite.com。Apple 判「不具原生價值」直接退。

拒信常見措辭:

Your app appears to primarily display content from a website / consists of a web view without providing additional native functionality. 你的 App 看起來只是主要呈現網站內容,或只是一個 WebView 而沒有其他原生功能。

怎麼修:

  • 至少加入以下 2 條:原生登入(含 Sign in with Apple)、Push Notification、離線快取、Widget、Share Extension、Apple Pay、相機 / 掃碼、地圖。
  • 首頁不能只是 WebView,至少要有一個原生首頁(包含原生元件、可運作的分頁結構)。

怎麼預防:

  • 接案時先問:「這個需求是否其實用 PWA / 網頁書籤就夠了?」誠實講出可節省很多溝通。
  • 若真的要 hybrid,把「原生功能清單」寫進報價單範圍,別讓客戶以為包一下就能上架。可延伸閱讀我們寫的 App 開發費用怎麼估。

案例 10 — Guideline 1.1.6:涉及政府 / 法規內容,缺授權說明

情境:App 整合到政府或公用系統(電子發票、健保、金融帳戶、車輛監理),審核員會質疑:你有權拿這些資料嗎?有立案嗎?

拒信常見措辭:

Your app includes content or features that require permission or authorization from a third party, but you have not provided documentation. 你的 App 包含需第三方授權的內容或功能,但你並未提供相關文件。

BotsUP 踩過:水滴發票 初次送審就遇到這條 — App 直接對接財政部電子發票整合服務平台。我們準備的文件包含:

  1. 財政部電子發票 API 的 App ID 授權信件 / 截圖。
  2. 矽基崛起有限公司的營業登記(業務項目含「資訊服務」)。
  3. App Review Notes 裡用英文說明:「This app uses the official MOF e-Invoice Integration Service Platform API. Authorization ID: XXXX. See attached documentation.」

補完這三樣再重送,一次通過。

怎麼修:

  • 備好授權文件 PDF,在 Resolution Center 附上。
  • 在 Review Notes 用英文一句話講清楚:是誰授權的、授權範圍、你的公司實體是誰。

怎麼預防:

  • 只要 App 動到公部門或金融 API,送審前就主動在 Review Notes 附上授權說明,不要等被拒。
  • 營業登記項目要涵蓋 App 做的事情(資訊服務業、電子資訊供應服務業等)。

通則防範:上架前 6 條 checklist

  1. TestFlight 跑 48 小時以上,至少 3 人、2 種 iOS 版本、2 種機型實測主 flow。把 crash reporting 裝好。
  2. Privacy Manifest 全量填好:自家 code 與所有第三方 SDK 都要有 PrivacyInfo.xcprivacy。每季檢查一次 SDK 版本。
  3. Screenshot 上傳前對照 Guideline 2.3:不含 App 外文字、不含未上架功能、不含其他 App UI。
  4. 若有任何登入 / 付費 / 政府資料:Sign in with Apple 就位、IAP 就位、授權文件就位。
  5. 寫好 App Review Notes(這是最被忽略的殺手鐧):測試帳號、特殊 flow 的逐步說明、任何需要授權的資料出處。用英文寫。
  6. 保留 Resolution Center 所有紀錄:每次被拒與回覆存檔成 PDF,下次改版可直接引用「此功能已於上一次 Review 通過」。

FAQ

Q:被拒後多快可以重新 submit? 技術上沒有冷卻期,修完馬上就能重送。實務上我們會花 1–2 小時確認修法、寫好 Review Notes 再送,避免同一個問題被退第二次(會累積負面紀錄)。

Q:可以跟 Apple 吵回覆嗎? 可以。Resolution Center 裡可以回覆文字、附截圖、附影片;也可以到 App Review Board 申訴(Guideline 的 1.0 Introduction 有連結)。態度要專業、具體講出 guideline 條號與你的反駁。我們在 水滴發票 曾經靠一次 App Review Board 申訴讓被拒的 metadata 重新通過。

Q:台灣帳號和美國帳號審核嚴謹度有差嗎? 理論上審核 pool 是全球共享,但 in-market metadata 會用該市場的本地審核員。同一隻 App 在台灣市場用繁中送審與在美國市場用英文送審,被退的細節可能不一樣(截圖文案、授權文件)。

Q:被拒 3 次會被 Apple 黑名單嗎? 單一版本連續被拒不會直接封號,但同一個 binary / 同一問題被退 2 次以上會進入加強檢查,審核時間延長、下一版也容易被挑毛病。每次被拒都要認真修,不要為了 rush deadline 亂 resubmit。

Q:Expedited Review 真的有用嗎? 有用,但是只給緊急情況:重大 bug 導致 App 無法使用、安全性問題、配合新 iOS 發行、重大活動檔期。濫用會被 Apple 記一筆、日後申請通過率下降。我們一年用 1–2 次,通常 24 小時內就會被加速。

Q:重大節日(年底 / iOS 更新)提交會比較快嗎? 反過來。12/20 – 01/03 Apple 會有部分審核暫停;iOS 主版本更新前後(通常 9 月)審核員忙到癱瘓、平均時間會拉長到 48–72 小時。有重要改版請避開這兩段。


延伸閱讀

  • App 開發費用怎麼估:2026 台灣行情 — 如果你還在估案階段,先把上架風險與費用一併算進去。
  • 軟體外包合約怎麼談:避免報價翻倍的 5 個條款 — 合約裡要怎麼寫「上架被拒誰負責」這條。
  • BotsUP 服務項目 — 我們提供的 Flutter / iOS / AI 整合服務。
  • BotsUP 案例 — 水滴發票、OnReel、間歇健走、Agent2PDF 的實際產出。

參考資料

  • Apple, App Store Review Guidelines(官方條文)
  • Apple, Privacy Manifest Files
  • Apple, Describing Use of Required Reason API
  • Apple, Sign in with Apple
  • Apple Developer News, Upcoming third-party SDK requirements(2024 年 Privacy Manifest 強制公告)
  • Apple, App Review — Responding to your reviewer(Resolution Center 指引)

BotsUP 幫客戶處理過 App Store 下架危機 24 小時內重新上架。上架被卡或擔心會被卡?30 分鐘需求診斷 先聊聊。

Vincent Liaw

BotsUP 創辦人

水滴發票(196 萬用戶、App Store 2021 年度最佳 APP)共同創辦人。現為 BotsUP 創辦人,專注 AI Agent、MCP 整合、Flutter App 與企業自動化。ISO 27001 對齊、矽基崛起有限公司為台灣合作窗口。

延伸閱讀

App 開發外包費用怎麼估?2026 台灣行情完整解

App 開發外包費用怎麼估?2026 台灣行情完整解

台灣 App 開發外包報價從 3 萬到 300 萬都有人寫,差別在誰報、報什麼、怎麼收尾。本文拆解 3 種報價區間、iOS / Android / Flutter 成本差、以及上架 / 維運 / SDK 吃掉的隱藏成本,幫老闆看懂一張 App 報價單。

選技術夥伴 vs 選外包:5 年差在哪(給中小企業老闆)

選技術夥伴 vs 選外包:5 年差在哪(給中小企業老闆)

中小企業老闆做第一個、第二個軟體專案時,最常踩到的坑不是預算估錯,而是選錯合作對象。這篇用 5 個維度比較「傳統 SI、自由工作者、新型態軟體顧問」,幫你 30 分鐘做完決策。

軟體外包合約怎麼談:避免報價翻倍的 5 個條款

軟體外包合約怎麼談:避免報價翻倍的 5 個條款

預算做到一半翻倍不是意外,是結構性問題。模糊需求 + 驗收不清 + 追加沒上限 = 付了錢拿到的是帳單不是產品。本文拆解合約裡 5 個真正重要的條款,給沒經驗的老闆看得懂的版本。