# RevenueCat 教學：iOS App 內訂閱設定

> RevenueCat 串接 App Store Connect 產品與你的 App，並管理存取權限。四步驟完成第一個 iOS 訂閱。

原始頁面：[RevenueCat 教學：iOS App 內訂閱設定](https://devoria.fr/zh-hant/blog/revenuecat-ios-in-app-subscription-setup)
作者：[Mehdi Azizi](https://devoria.fr/zh-hant/mehdi-azizi)
發布日期：2026-10-01
內容最後修訂：2026-10-09


## 為什麼用 RevenueCat，而不是只用 StoreKit

StoreKit 是 Apple 的框架，不靠任何第三方服務就能販售訂閱。但對新手來說，自己寫完整的購買、恢復購買和存取權限驗證邏輯，代表要維護一大堆程式碼，還有很多容易漏掉的邊界情況：換裝置、到期、退款。

[RevenueCat](https://www.revenuecat.com/docs/welcome/overview) 介於 App Store Connect 和你的 App 之間：它讀取你的產品、管理有效訂閱，讓你不用自己寫這一層。價格和優惠都能在後台控制，每次調整都不必重新上架 App。

## 步驟 1：在 App Store Connect 建立產品

在用 RevenueCat 之前，產品必須先在 Apple 那邊存在。在 App Store Connect 建立一個訂閱群組，再建立一個或多個等級，設定期限（例如月繳或年繳）以及各地區的價格。每個方案也要填好顯示給使用者的文字：Apple 在審核接受產品前會要求這些資料。

這個階段常見的疏忽：產品建立了，卻從來沒有跟對應版本一起送進 App 的第一次審核。一個從未包含在 App 提交中的待處理產品，你的使用者會看不到，即使 RevenueCat 已經看得到它。

## 步驟 2：把 RevenueCat 接上你的 App

在 RevenueCat 裡，你建立一個專案，連結你的 App Store Connect API 金鑰，讓 RevenueCat 自動同步你的產品，接著定義「entitlements」，也就是存取權限。一個 entitlement 代表訂閱解鎖的內容，例如完整使用 App，和實際觸發它的是哪個產品無關。

這層間接設計很實用：之後如果你改變方案結構，例如新增年繳方案，只要把新產品連到同一個 entitlement，App 裡檢查權限的程式碼完全不用動。

在 App 端，[RevenueCat 的 React Native SDK](https://www.revenuecat.com/docs/getting-started/installation/reactnative) 可以透過專用 plugin 安裝到 Expo 專案中，並提供一個簡單的函式，判斷目前使用者是否擁有有效的 entitlement。

## 步驟 3：打造你的付費牆

付費牆是展示方案並觸發購買的畫面。RevenueCat 提供可在後台設定的付費牆，修改時不必重新上架 App；如果你想完全掌控設計，也可以用 SDK 自己做。

擺放位置和設計一樣重要。在使用者還沒看到 App 價值之前就跳出的付費牆，轉換率通常比放在第一次成功操作之後的差。[iOS 付費牆新手常見錯誤](https://devoria.fr/zh-hant/blog/ios-paywall-beginner-mistakes)這篇整理了這個階段最常見的陷阱，不只是技術串接而已。

## 步驟 4：測試購買、恢復購買與到期

這是最常被草草帶過的步驟，偏偏也是 Apple 檢查最多的。送審前有三個情境必須正常運作：

**購買。** 使用 sandbox 測試帳號，購買後必須立即解鎖 entitlement，而且你的 App 要能即時反應這個變化，不需要重新啟動 App。

**恢復購買。** 在新裝置上或重新安裝後，使用同一個 Apple 帳號，「恢復購買」按鈕必須能找回有效的訂閱。Apple 審核時一定會檢查這個流程，缺少或無法正常運作，是依據 [guideline 3.1.1](https://devoria.fr/zh-hant/blog/guideline-3-1-1-in-app-purchase-required) 被拒的常見原因。

**到期。** 在 sandbox 環境中，訂閱會在幾分鐘內到期，而不是幾個月，讓你不用等真實的計費週期，就能確認期限結束後權限有正確關閉。

## RevenueCat 無法取代的部分

RevenueCat 處理的是購買機制，不負責你的商品頁和付費牆是否符合 [guideline 3.1.2](https://devoria.fr/zh-hant/blog/guideline-3-1-2-app-subscription-rejected)。你還是得在 App Store 描述中正確說明訂閱內容、標示確切價格與期限，並填寫你的使用條款。[iOS 訂閱制還是一次性買斷](https://devoria.fr/zh-hant/blog/ios-app-subscription-vs-one-time-purchase)這篇能幫你在進入技術步驟之前，先選對商業模式。

另外，RevenueCat 在月營收超過一定門檻後會抽成，這是在 Apple 對 App 內訂閱的抽成之外另外收取的。在以這兩筆抽成規劃你的商業模式之前，請先到他們官網確認目前的級距。

## 新手最常犯的錯誤

**忘了載入狀態。** App 啟動時，RevenueCat 需要一小段時間取得使用者的存取權限。如果你的 App 在收到回應前預設顯示付費內容，沒有訂閱的使用者可能會短暫看到沒付費的內容。請設計明確的載入狀態，不要預設樂觀地直接顯示。

**在錯的地方檢查權限。** 每次打開付費畫面都要重新檢查 entitlement 是否有效，而不是只在啟動時檢查一次。如果使用者在使用 App 時取消訂閱或訂閱到期，下一個畫面就必須反映這個變化。

**搞混 sandbox 與正式環境。** 產品 ID 和 sandbox 測試帳號跟正式環境是分開的。用錯 Apple 帳號在 sandbox 測試成功，或產品只建立在正式環境，都可能讓你誤以為一切已經就緒。

## 經過驗證的 App，而不只是能編譯的 App

用自己的帳號快速測試時「能用」的訂閱，不代表在另一台裝置上恢復購買或真正到期時也沒問題。而這正是 Apple 審核人員會檢查的。[iOS App 內訂閱](https://devoria.fr/zh-hant/expertise/ios-in-app-subscription)頁面詳細說明了整條流程，從建立產品到最後的驗證。

如果你想從一個付費牆和訂閱都已經寫好的基礎開始，[iOS Kit](https://devoria.fr/zh-hant/kits/ios) 的 Starter Code 就包含這些。想像審核人員那樣檢查你的訂閱，[Apple Review Kit](https://devoria.fr/zh-hant/kits/review-apple) 收錄了我的送審前檢查清單，以及要留給審核人員的 App 內購買測試說明。

## 常見問題

### 如何在 iOS 上設定 RevenueCat 訂閱？

分四個步驟。先在 App Store Connect 建立產品。接著用你的 App Store Connect API 金鑰連接 RevenueCat，定義 entitlements（存取權限），然後打造付費牆。最後測試購買、恢復購買與到期：這一步常被草草帶過，卻是 Apple 會檢查的。

### 在 iOS 上販售訂閱一定要用 RevenueCat 嗎？

不用。Apple 的框架 StoreKit 不靠第三方服務就能販售訂閱。但這樣你就得自己寫完整的購買、恢復購買和存取權限驗證邏輯，還有容易漏掉的邊界情況：換裝置、到期、退款。RevenueCat 介於 App Store Connect 和你的 App 之間，幫你省掉這一層。

### RevenueCat 裡的 entitlement 是什麼？

entitlement 就是存取權限：代表訂閱解鎖的內容，例如完整使用 App，不論實際觸發它的是哪個產品。之後如果新增年繳方案，只要把新產品連到同一個 entitlement 就好。App 裡檢查權限的程式碼不需要更改。

### 送審 Apple 前如何測試 RevenueCat 訂閱？

送審前有三個情境必須正常運作。購買：使用 sandbox 測試帳號，權限立即解鎖，不必重新啟動 App。恢復購買：在新裝置上或重新安裝後，使用同一個 Apple 帳號，恢復購買按鈕能找回有效訂閱。到期：在 sandbox 中訂閱幾分鐘就會到期，讓你確認權限有正確關閉。

### 為什麼 RevenueCat 看得到的產品，使用者卻看不到？

通常是因為該產品從未包含在 App 提交中。在 App Store Connect 建立、但從未跟對應版本一起送進第一次審核的產品，你的使用者會看不到，即使 RevenueCat 已經看得到。這是建立產品階段常見的疏忽。

### RevenueCat 會對訂閱抽成嗎？

RevenueCat 在月營收超過一定門檻後會抽成，而且是在 Apple 對 App 內訂閱的抽成之外另外收取。在以這兩筆抽成規劃商業模式之前，請先到 RevenueCat 官網確認目前的級距。


## 你的專案

[iOS Kit](https://devoria.fr/zh-hant/kits/ios)：用 Claude Code 打造你的 iPhone App：我的 App 所用的 Starter Code、檢查成果的 skills，以及 Apple Review Kit、App Store Screenshots Kit 與 ASO Kit。129.99 €。
