# Guideline 5.6 付費牆被拒：Apple 審核原因與修正方法

> Guideline 5.6：Apple 會拒絕設下陷阱的付費牆，例如點叉叉卻跳出優惠、強制重複推銷。本文說明規則內容，以及我修正 TradaZen 被拒的過程。

原始頁面：[Guideline 5.6 付費牆被拒：Apple 審核原因與修正方法](https://devoria.fr/zh-hant/blog/guideline-5-6-paywall-app-store-rejection)
作者：[Mehdi Azizi](https://devoria.fr/zh-hant/mehdi-azizi)
發布日期：2026-11-04
內容最後修訂：2026-11-04


Guideline 5.6 是開發者的行為準則。遇到付費牆的問題時，Apple 會引用一句固定的話：app「attempts to manipulate customers into making unwanted In-App Purchases」。白話來說，**你購買流程中的某個按鈕沒有做到它所宣稱的事，或是某個優惠在使用者沒要求的情況下又跳了出來。**修正方法可以濃縮成一條規則：每個按鈕都做它說的事，而且由使用者自己決定什麼時候再看到優惠。

我在 TradaZen 上吃了這個退件。TradaZen 是我的交易練習 app，它的上架過程我寫在[這篇案例分析](https://devoria.fr/zh-hant/blog/tradazen-case-study-launch-iphone-app)。以下是規則內容、我在自己付費牆裡找到的問題、該避免的設計模式，以及我給 Apple 的回覆。至於相關的評分請求規則，請改看 [guideline 5.6.3](https://devoria.fr/zh-hant/blog/guideline-5-6-3-app-review-request-rejection) 的指南。

## Guideline 5.6 寫了什麼？

5.6「Developer Code of Conduct」位於 [App Review Guidelines](https://developer.apple.com/app-store/review/guidelines/#5.6) 第 5 節「Legal」。第一段講的是尊重：對顧客、在回覆評論時，以及和 Apple 的往來中。第二段則直接針對購買行為。

現行條文先立下原則：「Customer trust is a cornerstone of the App ecosystem.」接著列出 app 絕對不能做的事：占使用者便宜、詐騙他們、「trick them into making unwanted purchases」、強迫他們分享不必要的資料、「raise prices in a tricky manner」、對沒有提供的東西收費，或任何其他操控性的做法，不論在 app 內或 app 外。

換句話說：**你不能用詐術換來一筆購買。**條文並沒有列出禁止的按鈕清單，它看的是效果：使用者付錢，是因為他想付，還是因為畫面設了陷阱？

5.6 底下還有四條子規則：

| 子規則                   | 針對的內容       |
| ------------------------ | ---------------- |
| 5.6.1 App Store Reviews  | 評論與評分請求   |
| 5.6.2 Developer Identity | 關於你的正確資訊 |
| 5.6.3 Discovery Fraud    | 曝光度詐欺       |
| 5.6.4 App Quality        | 客訴、退款       |

懲罰就寫在規則裡：「Repeated manipulative or misleading behavior or other fraudulent conduct will lead to your removal from the Apple Developer Program.」也就是說，重複的操控行為會導致你被踢出開發者計畫。這是一般性規則，也是第一次被拒時就把整個購買流程修好的充分理由。

## 付費牆的 5.6 退件訊息

訊息通常是同一句話：「The app attempts to manipulate customers into making unwanted In-App Purchases.」Apple 不一定會說明針對的是哪個元素。我收到的退件就只有這句，沒有更多。

其他開發者有描述出問題的畫面。在 2024 年 11 月的一則 [Apple 論壇討論串](https://developer.apple.com/forums/thread/768912)中，一位開發者把他的 5.6 退件歸因於一個一次性優惠，會在使用者關閉第一個訂閱畫面時出現。

5.6 不只針對付費牆。也有開發者因為某些功能看起來像是[在審核期間被隱藏](https://developer.apple.com/forums/thread/845045)而被拒。如果你的 5.6 退件和購買無關，先找找審核人員可能沒看到的東西。

## 我在 TradaZen 上的 5.6 退件

2026 年 10 月 12 日，Apple 退回了 TradaZen 1.5.1 版，測試裝置是 iPad Air。理由：guideline 5.6，附上那句關於非自願購買的固定句子。沒有指出任何畫面。

所以我用一個「只想拒絕」的人的角度，重看了整個購買流程。新手引導結束時的付費牆沒有關閉選項：app 要求開始試用或訂閱才能繼續。它周圍有三個機制可能被視為操控：

- **假的叉叉。**畫面頂端有一個叉叉形狀的按鈕，VoiceOver 唸出來是「關閉」，點了卻是打開折扣優惠，而不是關閉畫面。
- **自己跳回來的優惠。**只要優惠還在期限內，使用者回到 app 時它就會自己重新打開。
- **促銷推播。**從付費牆離開 app，會排程一則宣傳獨家折扣的通知。

有個細節很重要：這些機制在前一版就已經存在，而那一版三天前才剛通過。**一次通過不代表你的付費牆永遠合格**：換一位審核人員，可能會對同一個畫面有不同解讀。

### 我改了什麼

- 這個畫面上的叉叉拿掉了。取而代之的是一個禮物圖示，VoiceOver 唸出「獨家折扣」，點了才會打開優惠。再也沒有任何東西假裝是關閉按鈕。
- 回到 app 時，優惠再也不會自己打開。
- 折扣通知刪除了。只保留一個溫和的提醒，每次安裝只發送一次，而且只在使用者允許通知時才發送。內容不提價格、不提折扣、也不提期限。
- 這個提醒寫在給 App Review 的訊息中，附上文字內容和發送時機。

### 我保留了什麼

剩下的部分我也重看了一遍，問自己每個元素是否真的讓使用者有選擇。

- **購買取消後的優惠。**如果使用者在 Apple 的付款畫面取消年訂閱，會出現一個新手優惠。它只有一次 5 分鐘的時間窗口，不會重新計時：如果使用者在這段時間內再次取消，它會再打開。它可以用叉叉或「不用了，謝謝」一鍵關閉，並顯示商品的實際價格。
- **真實的 5 分鐘倒數。**第一次顯示時，到期時間就記錄在裝置上。app 關閉時它照樣繼續倒數，重新開啟也不會歸零。時間到了，這個優惠在這次安裝中就消失。如果在那之前關掉，會有一個小標籤顯示剩餘時間，只有點它才會重新打開優惠。
- **上鎖的寶箱。**它顯示使用者在新手引導期間獲得的物品，而且只顯示這些，在 app 解鎖前保持上鎖。沒有任何地方說它們會消失。

這些元素都寫在審核備註中。退件沒有指出任何畫面，所以我不會把它們說成已經通過 Apple 認可。在我看來，它們是這些機制的透明版本，而且我都主動申報了。

因為所有問題都在 app 內，修正需要一個新的 build。TradaZen 在 2026 年 10 月 13 日重新送審。

## 會觸發 5.6 的付費牆 dark pattern

Apple 沒有公布清單。同一種機制常有兩個版本：設陷阱的版本，和讓人自由選擇的版本。下表把兩者分開，綜合了規則條文、其他開發者公開的退件經驗和我自己的案例。透明版本不保證一定通過，它只是不試圖欺騙的那個版本。最後一欄說明每一列的依據。

| 操控版本                                     | 透明版本                                           | 依據                               |
| -------------------------------------------- | -------------------------------------------------- | ---------------------------------- |
| 叉叉點了不是關閉，而是打開優惠               | 叉叉就是關閉。無法關閉的畫面不顯示叉叉             | 我的 TradaZen 退件後修正           |
| 關閉付費牆時突然跳出「一次性」優惠           | 折扣放在一個清楚標示的按鈕後面                     | Apple 論壇上公開的退件             |
| 拒絕後再推出第二個優惠，搭配價格誤導的付費牆 | 購買取消後只有一個優惠，顯示實際價格，一鍵就能關閉 | Cal AI 案例；Superwall 轉述的交流  |
| 回到 app 時付費牆或優惠自己重新打開          | 只在使用者碰到限制，或點了標示清楚的按鈕時才出現   | 我的 TradaZen 退件後修正           |
| 使用者從未要求的促銷通知                     | 取得明確同意後才促銷，並可在 app 內取消訂閱        | 規則 4.5.4                         |
| 假倒數，會歸零，或結束後優惠又回來           | 真實的期限，app 關閉也繼續倒數，結束就真的結束     | 我對「trick them」的解讀，規則 5.6 |
| 虛構的獎勵，或威脅不購買就會消失             | 使用者真正獲得的東西，展示時不威脅會失去           | 我對規則 5.6 的解讀                |
| 免費試用卻隱瞞自動扣款                       | 在按鈕旁標示試用期長度及之後收取的價格             | Apple 訂閱說明頁面                 |
| 每週價格放很大，實際收費金額放很小           | 實際收費金額是畫面上最醒目的價格                   | Apple 訂閱說明頁面                 |
| 讓人有罪惡感的拒絕按鈕                       | 中性的拒絕文字，例如「以後再說」或「不用了，謝謝」 | 我對規則 5.6 的解讀                |

Cal AI 案例由 [TechCrunch](https://techcrunch.com/2026/04/21/apples-cal-ai-crackdown-signals-its-still-policing-the-app-store/) 報導：Apple 對拒絕第一個優惠的使用者再顯示第二個訂閱優惠的做法引用了 5.6。同一個付費牆也被以 3.1.2(c) 點名：每週價格蓋過了實際收費金額，而且試用隱藏了自動續訂。文章沒有進一步描述第二個優惠的細節。

相反地，Superwall 這家販售這類優惠的付費牆工具商，轉述了 2026 年 6 月一次[與 Apple 的非正式交流](https://superwall.com/blog/external-checkout-a-b-testing-and-trial-toggles-confirmed-apples-rules-for-ios)。其中，購買取消後顯示的優惠被描述為允許的做法。糾纏則不行：每次開啟都回來的優惠，或只有付錢才能離開的流程。Superwall 特別說明這些不是官方規則，審核人員仍有自己的判斷空間。所以拒絕後的優惠仍是灰色地帶：條文沒有禁止，但確實有公開的退件案例，做法很關鍵。

通知相關的規則是 [4.5.4](https://developer.apple.com/app-store/review/guidelines/#4.5.4)：沒有在 app 內取得明確同意，或沒有提供取消訂閱的方式，就不能用通知做促銷。

價格方面，[Apple 的訂閱說明頁面](https://developer.apple.com/app-store/subscriptions/)寫得很清楚：實際收費金額必須是最醒目的價格元素。理由只有一句：「This ensures that people are not misled.」[規則 3.1.2](https://developer.apple.com/app-store/review/guidelines/#3.1.2) 也補充，Apple 會下架用不實包裝或「bait-and-switch」手法販售訂閱的 app。

> 我現在用的檢驗方法：每個按鈕是否完全做到它外觀所承諾的事？使用者能不能一個動作就說不，而且優惠不會自己再跑回來？

比較常見的付費牆錯誤，也就是會讓你少賺錢但不一定會被拒的那些，寫在 [iOS 付費牆：7 個新手錯誤](https://devoria.fr/zh-hant/blog/ios-paywall-beginner-mistakes)。

## 如何修正 5.6 退件

1. **列出整個購買流程。**付費牆、次要優惠、倒數計時、通知、回到 app 時的再次推銷。Apple 不一定會說它針對什麼。逐一確認每個元素都是透明版本：一鍵可關閉、倒數是真的、價格正確、不會自動跳回來。修正或移除所有看起來像陷阱的東西，而不只是最可能的那一個。
2. **重跑審核人員的流程。**刪除 app、重新安裝、完成新手引導，然後全部拒絕：關閉、取消、離開 app、再回來。記下每一個你沒要求卻打開的畫面，並確認你能一鍵關閉它。
3. **準備新的 build。**原因在 app 裡，也就是在打包進去的程式碼中。遠端更新不能取代 build，我在 [guideline 2.1](https://devoria.fr/zh-hant/blog/app-store-guideline-2-1-rejection-fix) 的指南中有說明。
4. **不要留一手。**通過審核後再從遠端重新開啟某個優惠，等於對審核人員隱藏功能。RevenueCat 自己也在關於[離開優惠](https://www.revenuecat.com/blog/engineering/exit-offers-in-revenuecat-paywalls)的文章中提醒過這種做法。
5. **在 App Store Connect 回覆**，用英文，[回覆 App Review 的訊息](https://developer.apple.com/help/app-store-connect/manage-submissions-to-app-review/reply-to-app-review-messages/)。

以下是從我的回覆和審核備註整理出來的範本，已經精簡過。把 build 編號和修改內容換成你自己的，再列出保留下來的部分：

```text
Hello,

Thank you for your feedback on Guideline 5.6.

Issue: on the subscription screen, the button in the top
corner looked like a close button, but it opened a
discounted offer instead of closing the screen.

Changes in build X:
- Nothing on the subscription screen pretends to close it.
  A clearly labeled button now opens the optional offer.
- The offer never reopens by itself when the user comes
  back to the app.
- The notification announcing a discount has been removed.

Still in this build (also described in the review notes):
- [Each remaining offer: what triggers it, how often it
  appears, how the user dismisses it.]
- [Each remaining reminder: its text, when it is sent,
  and under which conditions.]

If another part of the purchase flow still looks unclear,
please tell me which screen, and I will change it.

Best regards,
```

**你寫的內容必須和 build 完全一致。**如果你保留了某個提醒或優惠，即使是自動觸發的，也要在回覆和審核備註中說明。如果你認為審核人員判斷錯了，Apple 允許你[向 App Review Board 提出申訴](https://developer.apple.com/distribute/app-review/)，每次被拒的送審只能申訴一次。就付費牆而言，我覺得修正比爭辯更穩。其他退件原因及回覆方式，請看[為什麼 Apple 會拒絕 app](https://devoria.fr/zh-hant/blog/apple-app-rejection-reasons-real-cases)。

## 送審前的防 5.6 檢查清單

- 每個叉叉都會關閉畫面。無法關閉的畫面不顯示叉叉。
- 每個按鈕都清楚說明它做什麼，畫面上和 VoiceOver 都一樣。
- 沒有任何優惠藏在關閉按鈕後面。
- 如果你保留了因拒絕而觸發的優惠，它只有一個不會重新計時的時間窗口，顯示實際價格，一鍵就能關閉。
- 回到 app 時，沒有任何付費牆或優惠會自己重新打開。
- 沒有在 app 內取得明確同意，就不發促銷通知。
- 沒有假倒數：顯示的期限是真的，不會歸零，結束就真的結束。
- 畫面上顯示為已獲得的東西，真的已經獲得，而且沒有威脅會失去。
- 試用期標示長度和之後收取的價格。
- 實際收費金額是畫面上最醒目的價格。
- 審核備註說明了 build 中的每個優惠和每個提醒。
- 你已經在 iPhone 和 iPad 上，用全部拒絕的方式重跑過流程。

## 在 Apple 之前先讓人檢查你的付費牆

[Review Kit](https://devoria.fr/zh-hant/kits/app-review) 收錄了我的送審前檢查清單、我修正過的退件案例，以及兩個 Claude Code skill，會檢查你的專案、付費牆和商品頁面。如果 Apple 拒絕了，它們會幫你準備回覆。想要真人幫你看，[預約一小時跟我討論](https://devoria.fr/zh-hant/coaching)：我們一起在你的螢幕上重跑購買流程。被拒後的完整處理方式在 [app 被 Apple 拒絕](https://devoria.fr/zh-hant/expertise/app-rejected-by-apple) 頁面，訂閱的技術部分則在 [iOS app 內訂閱](https://devoria.fr/zh-hant/expertise/ios-in-app-subscription)。

如果你正在準備第一次上架，[做一下免費診斷](https://devoria.fr/zh-hant/diagnostic)：它會幫你把步驟排好順序，並寄給你我的防 Apple 退件檢查清單。首頁說明如何[打造一款手機 app](https://devoria.fr/zh-hant)，從一開始就把付費牆設計得經得起審核。

沒有人能保證 Apple 一定會通過你的 app。我能做的，是幫你避開一個我已經付出一輪審核代價的 5.6 退件。

## 常見問題

### 退件中的「Guideline 5.6 - Developer Code of Conduct」是什麼意思？

這是開發者行為準則規則的名稱。對有 App 內購買的 app 來說，它最常代表購買流程被判定為操控性的：假關閉、自己跳回來的優惠、以誤導方式呈現的試用或價格。訊息不一定會指出是哪個畫面。

### Apple 禁止離開優惠嗎？

條文沒有明文禁止。RevenueCat 也這麼說，但同時提醒有開發者因此被拒。公開的退件案例針對的是使用者關閉付費牆時跳出的優惠，或拒絕後再推出的第二個優惠。透明版本的差別在於：優惠是選擇性的，只有一個不會重新計時的時間窗口，顯示實際價格，一鍵可關閉，不會自己跑回來，如果有倒數也是真的。把它寫進審核備註。沒有人能保證審核人員會這樣解讀。

### 沒有叉叉的付費牆可以嗎？

規則沒有強制要有叉叉，而這也是 TradaZen 在這次退件後的選擇。Apple 拒絕的，是看起來像關閉卻做別的事的按鈕。不過，曾有開發者回報一個免費下載的 app 因為付費牆沒有出口而收到 [5.6 退件](https://developer.apple.com/forums/thread/725056)。在要求試用之前先展示價值，並在商品頁面清楚說明這是付費 app。

### 5.6 退件後需要新的 build 嗎？

大多數情況需要，因為原因出在 app 的某個畫面或行為。如果問題在 app 外，例如商品頁面或中繼資料，不用新 build 的修正可能就夠了。不確定時，直接問審核人員指的是哪個畫面。

### 5.6 退件會導致開發者帳號被關閉嗎？

規則規定，重複的操控行為會導致被踢出開發者計畫。規則也規定，被關閉的帳號在提出書面改善計畫、經 Apple 核准並驗證後可以恢復。所以第一次被拒就把整個流程修好，才是上策。

### 5.6 和 5.6.3 有什麼不同？

5.6 是一般性的行為準則：尊重、信任、不能用詐術換來購買。5.6.3 是它的子規則之一，針對排名、搜尋和評論的操控。Apple 曾因 Solys 在新手引導中放了評分請求而引用這條規則。


## 你的專案

[Review Kit](https://devoria.fr/zh-hant/kits/app-review)：我的 App Store 審查檢查清單、我被 Apple 退件後的修正、Google Play 檢查清單，以及三個 Claude Code skill。$1,749。

[iOS & Android Kit](https://devoria.fr/zh-hant/kits/ios)：用 Claude Code 打造你的 iPhone 和 Android App：我自己 App 的起始程式碼、上架商店的完整流程，以及所有套件。$3,599。

[診斷：你離自己的 iPhone App 還差什麼](https://devoria.fr/zh-hant/diagnostic)：7 個問題，60 秒：找出真正卡住你發布 iPhone App 的原因，拿到你的 4 步驟路線，以及最適合你的套件。
