用雙腳丈量世界,用生活領悟人生

[
[
[

]
]
]

268 條百岳路線、零廣告、雙平台同步、SOS 緊急功能。從第一次按下「Submit for Review」到正式上架,Apple 退了我 10 次

退件理由從 Guideline 2.1(功能不完整)到 4.8(Sign in with Apple 沒做對)到 5.1.1(隱私政策語焉不詳),不一而足。Android 那邊則是 14 天封測限制 + 帳號狀態審查的拉鋸。

整個過程踩過的雷夠多,足以變成一份內部 SOP(/app-store-launch skill),現在這份 SOP 是工作室所有客戶案件的標配。

這篇把當時的學費抽五件最重要的事寫下來,給:

  • 自己團隊未來上架同類 app 的人
  • 想找工作室合作但擔心「會不會被 Apple 卡住」的客戶

1. 平台政策變動比你想的快 — 永遠先查證、不要憑印象指引

第三輪 review 被退,原因是 IAP 退款 UI「客戶找不到入口」。我憑印象告訴客戶「到 Apple ID → 訂閱裡就能退款」— 結果那個 UI 早就被 iOS 17 改掉了。

教訓:任何涉及 Apple / Google / Stripe 後台 UI 的指引,自己先在最新版後台走一遍。憑印象 = 給客戶錯誤指引 = 客戶不滿。

工作室現在的 SOP:客服場景任何平台 UI 操作建議都要先查證再發出,相關 memory 永遠帶版本日期。

2. IAP 訂閱不是「打勾就好」— base plan 設定是地雷

Apple 的 IAP 訂閱結構是:產品 → 訂閱群組 → 多個 base plan(年付 / 月付 / 試用)。任何 base plan 設定不對都會 trigger 整個訂閱群組被退,不是只退那個 plan。

第五輪退件就是這個原因 — 試用期 base plan 沒設定「轉正後扣款金額」,整組訂閱被卡。

Google Play 那邊更複雜:base plan + offer 兩層結構,台幣定價跟 USD 定價要分開設、不能自動換算。

教訓:IAP 設定要逐項對照 Apple 跟 Google 各自的 official checklist,不能跨平台複製貼上。

3. App Store Server Notifications — 上架後第一次設定是強訊號

PEAKSTW 上線後幾個月,發生一次客戶 IAP 異常事件。追根究底發現:ASC(App Store Connect)的 webhook URL 從來沒設過。我們以為 IAP 通知會自動進來,但其實 ASC 需要你手動填一個 production URL 才會送通知。

Apple webhook V1 → V2 已強制升級,V2 不像 V1 有「測試模式 / 正式模式」切換 UI — 你必須在 production deploy 後跑一次 test notification 來驗證 URL 通了。

教訓:domain 遷移、production URL 變更、任何「平台串接點」改動,都要在 sender 端後台確認 URL 對得上

工作室現在的 SOP:每個跨系統 endpoint 依賴都要設 zero-invocation alert(22 天沒被打 = 你可能設錯了)。

4. 不要假設雙平台 bundle ID 一致

PEAKSTW 的 iOS bundle 是 com.peakstw.app,App Store ID 6760679304。
Android package 是 com.peaks.taiwan100peaks

兩個不同。歷史原因是不同階段命名沒對齊,但已經上架了不能改。

這個差異在跨平台監控、deeplink、firebase 設定、推播 cert 都會踩雷。我們的部署 script 因此都有「平台特定 ID 不能寫死共用變數」這條規則。

教訓:任何跨平台共用設定,先 audit 一遍 bundle / package / firebase project 是否真的一致。不能假設一致。

5. 沒有 SOP 跟 postmortem 的話,第 11 次還是會被退

最痛的學費不是「被退 10 次」本身,而是前 6 次被退的原因,第 7 次又踩了一個一模一樣的

工作室現在的 SOP:

  • 每一次 Apple/Google review 被退 → 立刻寫 incident postmortem
  • postmortem 要回答「為什麼這次沒被擋下來」(review checklist 哪裡沒抓到)
  • 修改 SOP / 上架前 checklist / 自查 script,馬上去改,不是事後
  • 下一次 submit 前,必跑全 checklist + Codex 嚴格 mode review

這套機制後來救了 RAILSTW(鐵道紀行)跟 Camino Storybook 兩個 app 各一次被退。SOP 不是寫好看,是真的會省你下一輪的 14 天等待。


給「想找工作室合作但擔心上架卡關」的客戶

如果你看完上面 5 件事覺得「我光想到要處理這些就頭痛」— 對,所以你才需要找做過的人。

不油膩數位工作室是台灣少數「一條龍包辦 iOS / Android / Web / AI」的個人工作室,主理人是科學教育博士、爬山的、寫過 10 萬行 production code。過去三年踩過的雷,現在變成內部 SOP,你直接受惠。

我們的服務範圍:

  • Flutter 雙平台 app(含 IAP / GPS / 離線地圖 / SOS 安全功能)
  • Next.js 官網與部落格(Cloudflare Workers 或 Vercel 部署)
  • AI Agent 客製化(Telegram / LINE / Web,含 RAG 知識庫)
  • AI 影片後製 pipeline + Reel 短影音腳本

報價走模組化菜單,每一項對應的標準工期跟邊界條款都寫在合約裡 — 你看得到完整成本結構,不是丟一個總價數字給你。

→ 想聊聊你的案件?來信 https://drnogreasy.life/#contact


延伸閱讀

發表迴響

探索更多來自 中年不油膩,也不由你 的內容

立即訂閱即可持續閱讀,還能取得所有封存文章。

Continue reading