# 用 AI 開發 iOS App：常見陷阱與檢查方法

> Claude、ChatGPT、Cursor 寫 iOS 程式碼很快，但簽署、訂閱、審查和實機測試常出錯。

原始頁面：[用 AI 開發 iOS App：常見陷阱與檢查方法](https://devoria.fr/zh-hant/blog/ai-ios-app-pitfalls-checks)
作者：[Mehdi Azizi](https://devoria.fr/zh-hant/mehdi-azizi)
發布日期：2026-09-23
內容最後修訂：2026-10-09


## 用 AI 開發 iOS App：簡短回答

可以，就算你是新手，也能用 AI 開發 iOS App。這種開發方式有個名字，叫做 [vibe coding](https://devoria.fr/zh-hant/blog/what-is-vibe-coding-definition-tools-limits)。Claude、ChatGPT 或 Cursor 很會寫畫面、導覽、簡單邏輯和資料庫呼叫。它們做不好的，是程式碼以外的一切：App 簽署、App Store Connect 設定、訂閱、[Apple 審查](https://devoria.fr/zh-hant/kits/review-apple)，以及只有在真的 iPhone 上才會出現的閃退。

換句話說，AI 在最顯眼的那部分工作上幫你省下好幾週，卻把決定 App 能不能上架的那部分留給你自己處理。這篇指南告訴你界線在哪裡、怎麼引導 AI 讓它保持有用，以及怎麼在 Apple 或使用者替你發現問題之前，先檢查它產出的東西。

我每天都用 Claude 和 Cursor 寫自己的 iOS App。Solys（一款附小遊戲的鬧鐘）和 TradaZen（一款交易模擬器）都已經上架 App Store。Nolera 和 Clic 曾被 Apple 退件，後來修正了。以下內容全部來自這些實際工作，不是 demo。如果你還在猶豫要選哪個工具，我在另一篇指南比較了[用 Claude Code、Cursor 和 ChatGPT 做 iPhone App](https://devoria.fr/zh-hant/blog/ai-app-builder-codex-claude-cursor)。

## AI 真正擅長的事

### 畫面與導覽

把一個畫面描述清楚（顯示什麼、每個按鈕做什麼、清單是空的時候會怎樣），AI 幾秒內就能交給你一個乾淨的元件。這是效益最驚人的地方，尤其是 React Native 和 Expo，因為 AI 看過大量這類程式碼。這也是我所有 App 用的技術組合，原因我在 [用 React Native 和 Expo 開發行動 App](https://devoria.fr/zh-hant/expertise/react-native-expo-mobile-app) 這頁有說明。

### 簡單的業務邏輯

計算分數、排序清單、格式化日期、驗證表單：AI 做得又快又不錯，前提是你要給它邊界情況。空清單、太長的欄位、另一個時區的日期。你不明講，它不一定會處理。

### 解釋你看不懂的東西

這是最被低估的用法。貼上一段錯誤訊息、一段設定或一封 Apple 的退件信，然後問「解釋這是什麼意思，先不要修改」。你會比看教學學得更快，因為解釋針對的是你自己的專案。

### 串接後端

在 Supabase 建立資料表、寫一個讀取已登入使用者資料的函式、處理載入狀態：AI 對這些工具很熟。只要留意安全性就好，後面會再談。

## 用 AI 開發 iOS App 時，AI 會漏掉的事

這是那些「我一個週末做出一個 App」影片從來不會給你看的部分。以下每一點都可能讓你的發布卡上好幾天，還不算上傳時的自動檢查，例如針對非公開 API 的 ITMS-90338。

### 簽署與憑證

要在 iPhone 上執行並上架 App Store，你的 App 必須用跟你 Apple Developer 帳號綁定的憑證與佈建描述檔簽署。AI 可以解釋原理，但沒有經過授權的存取，它不知道你的帳號狀況。它有時會編出已經不存在的步驟，或把 Xcode 的做法和 Expo 的做法混在一起，結果上傳時出現 ITMS-90034。用 EAS Build 的話，是這個工具幫你產生並管理這些檔案，推播金鑰也包含在內：交給它處理，不要照著用猜的流程走。

### App Store Connect 設定

App 頁面、bundle 識別碼、[隱私權聲明](https://devoria.fr/zh-hant/blog/guideline-5-1-2-third-party-ai-att-data-sharing)、加密相關問題、截圖、使用條款連結：這些資訊必須和送審的版本一致。有些 agent 可以在已登入的瀏覽器裡操作，例如 [Claude Code 搭配 Chrome](https://code.claude.com/docs/en/chrome)。這種存取必須經過授權，結果也要檢查；沒有讀取目前介面、只是背出來的流程，可能已經過時。

### 訂閱

這是 AI 最浪費你時間的地方。paywall 的程式碼很簡單。難的是三個地方之間的一致性：在 App Store Connect 建立的產品、它們在 RevenueCat 的設定，以及顯示它們的程式碼。識別碼差一個字元、某個產品沒有跟版本一起送審，你的 paywall 在審查人員那邊就會是空的。只要你給 AI 適當的存取權限，它就能讀這些後台；沒有這些權限，它無法檢查後台和程式碼是否一致。完整的工作內容在 [iOS App 內訂閱](https://devoria.fr/zh-hant/expertise/ios-in-app-subscription) 這頁有詳細說明。

### Apple 審查

AI 知道 App Review Guidelines 的大方向，但它不會用審查人員的眼光看你的 App。它不會主動告訴你：某個必要畫面在小尺寸 iPhone 上被切掉了、評分請求跳出來得太早、審查備註裡少了示範帳號，或是你的 App 太像網站，會碰到 [guideline 4.2](https://devoria.fr/zh-hant/blog/guideline-4-2-minimum-functionality-app-rejected)。前兩個是我在 Solys 真的吃過的退件，寫在[Apple 為什麼會退件你的 App](https://devoria.fr/zh-hant/blog/apple-app-rejection-reasons-real-cases)。

### 真實 iPhone 上的閃退

模擬器和開發版 App 能容忍很多問題。真的 iPhone 加上正式環境就不行。build 裡少了某個原生模組、權限沒有說明文字、啟動時太早讀取資料：App 一打開就馬上關掉，沒有任何訊息。agent 可以執行測試或分析截圖，但前提是驗證環境允許。光是模擬器的結果，不能證明裝在你 iPhone 上的二進位檔沒問題。每次上傳前，你都要自己把 App 裝到手機上，[TestFlight](https://devoria.fr/zh-hant/blog/testflight-test-iphone-app-before-review) 就是為此而生的。

> AI 寫的程式碼看起來是對的。只有在你的 iPhone 上測試，才知道它是不是真的對。

## 怎麼引導 AI，讓它保持有用

問題幾乎從來不在模型夠不夠聰明，而是你給它讀了什麼。

### 一次給足你的背景資訊

在專案根目錄寫一個簡短的檔案，描述你的技術組合（Expo、SDK 版本、Supabase、RevenueCat）、資料夾結構和你的規則。Claude Code 會讀 `CLAUDE.md` 檔案，Cursor 有自己的規則檔。沒有這些背景，AI 只能用猜的，而且常常猜成別的技術組合。我的[用 Claude Code 開發 App 教學](https://devoria.fr/zh-hant/blog/claude-code-iphone-app-tutorial)有這個檔案的完整範例。

### 拆成小任務

「幫我做一個有訂閱功能的習慣追蹤 App」會產出一個龐大又脆弱的專案。「建立列出今日習慣的畫面，包含空狀態和載入狀態」會產出一個你五分鐘就能看完、測完的畫面。一個任務、一個可驗證的結果，然後再做下一個。

### 先要計畫，再寫程式碼

凡是會動到多個檔案的事，先說「提出計畫，先不要寫程式碼」。你看過計畫、修正不對的地方，再讓它開始。這樣就能避免那種為了加一個按鈕，AI 把你半個專案重寫掉的意外大改。

### 讓它讀最新的文件

工具變化很快：Expo、RevenueCat 和 App Store Connect 經常改版。覺得某個回答可疑時，把官方文件頁面貼進對話，或用能幫它取得文件的工具。讀今天文件的 AI，比記得兩年前文件的 AI 少犯很多錯。

### 決定權留在自己手上

AI 提議，你決定。點子、價格、App 不做什麼：這些是你的工作。如果你讓 AI 加上它建議的每個功能，你會得到一個十件事都做得普普通通的 App，而不是一件事做得非常好的 App。要規劃第一個版本，請看 [iOS App MVP](https://devoria.fr/zh-hant/expertise/ios-app-mvp) 這頁。

## 怎麼檢查 AI 產出的東西

這項能力，區分了真正上架的人和累積一堆半成品的人。

### 每次修改都要看過

你不需要一行一行全部看懂。但你必須能回答三個問題：哪些檔案改了、為什麼改，以及這是不是我要求的。如果 AI 動了跟你的需求無關的檔案，接受之前先問它為什麼。

### 在你的 iPhone 上測試，不只在電腦上

盡早把 App 裝到你自己的手機上，之後每個重要階段都再裝一次。檢查安裝後的首次啟動、飛航模式、小螢幕和大螢幕、表單打開鍵盤時的狀況。這是我每個 App、每次送交 Apple 之前都會遵守的規則。

### 加上能看見你看不見之處的工具

在我的 App 上，Sentry 會回報閃退並指出出問題的程式碼行，PostHog 會顯示使用者在哪裡放棄。沒有它們，正式環境的 bug 會一直隱形，直到一則負評出現。AI 可以幫你安裝；但它們告訴你的事，你得自己去看。

### 注意資料安全

AI 在 Supabase 建立資料表時，要確認存取規則（RLS 政策）確實啟用：每個使用者只能讀取自己的資料。也要確認沒有任何秘密金鑰出現在 App 的程式碼裡，因為 App 可能被反編譯。如果你沒有明確禁止，AI 很容易犯這兩個錯。

### 反過來問它

程式碼寫好之後，問它：「這裡有什麼可能會壞掉？」或「用 Apple 審查人員的角度看這段程式碼」。寫出程式碼的同一個模型，換個角度提問時，常常能找出自己的疏漏。這不能取代你在 iPhone 上的測試，但能減少來回修改。

## 新手實際可行的路線

1. **選一個超小的點子**：一個主要功能，不是十個。
2. **使用 AI 熟悉的技術組合**：Expo、React Native，需要帳號功能的話再加 Supabase。
3. **一個畫面一個畫面做**，每次只提一個小任務，每一步都測試。
4. **在你的 iPhone 上測試**，先用開發版 build，再用 TestFlight。
5. **串接金流**：App Store Connect 裡的產品、RevenueCat、paywall。
6. **準備 App Store 資料**：App 頁面、[截圖](https://devoria.fr/zh-hant/kits/captures-app-store)、隱私權、給審查人員的備註。
7. **送交 Apple**，仔細讀回覆，修正被要求的地方。

每個步驟都有陷阱，AI 能幫你處理其中一半。想看全貌，[開發 iPhone App](https://devoria.fr/zh-hant/expertise/build-an-iphone-app) 這頁詳細介紹了完整流程。如果你想知道不自己寫一行程式碼能走多遠，請看[不寫程式也能開發 App](https://devoria.fr/zh-hant/blog/build-app-without-coding-no-code-ai)。

## 用 AI 開發你的 iOS App，一路到上架 App Store

AI 改變了誰能開發 iOS App。它沒有改變 Apple 對上架的要求，也沒有改變 App 拿到第一批訂閱收入需要做的事。這部分我放進了 [iOS Kit](https://devoria.fr/zh-hant/kits/ios)：我自己 App 的起始程式碼（包含訂閱），以及每個步驟的 Claude Code skills。依照你使用的工具，流程有詳細說明：[Claude Code 課程](https://devoria.fr/zh-hant/expertise/claude-code-course-ios-app) 或 [vibe coding 課程](https://devoria.fr/zh-hant/expertise/vibe-coding-course-iphone-app)。首頁會一步一步示範怎麼用這種方式[開發行動 App](https://devoria.fr/zh-hant)。

不知道卡住你的是程式碼、AI 還是 Apple？[免費診斷](https://devoria.fr/zh-hant/diagnostic)會告訴你，並寄給你我的 Apple 防退件檢查清單。

我不保證你會有收入，也不保證能上架：審核由 Apple 決定，其餘由市場決定。我給你的，是我自己在 App 上實際使用的方法。

## 常見問題

### 新手能用 AI 開發 iOS App 嗎？

可以。AI 很會寫畫面、導覽、簡單邏輯和資料庫呼叫。它做不好的是程式碼以外的一切，像是簽署、App Store Connect、訂閱、Apple 審查，以及只有在真的 iPhone 上才看得到的閃退。

### 開發 iOS App 該用哪個 AI？

Claude、ChatGPT 或 Cursor 都很會寫畫面、導覽和簡單邏輯。問題幾乎從來不在模型夠不夠聰明，而是你給它讀了什麼。把你的技術組合、規則和最新文件給它。我在另一篇指南比較了[用 Claude Code、Cursor 和 ChatGPT 做 iPhone App](https://devoria.fr/zh-hant/blog/ai-app-builder-codex-claude-cursor)。

### ChatGPT 能做出一個 App 嗎？

顯眼的部分可以：ChatGPT 和 Claude、Cursor 一樣，很會寫畫面、導覽、簡單邏輯和資料庫呼叫。但沒有經過授權的存取，它不知道你的 Apple 帳號狀況，也不會用審查人員的眼光看你的 App。只有在你的 iPhone 上測試，才知道程式碼是不是對的。

### 怎麼用 AI 一步步做出自己的 App？

選一個超小的點子，只有一個主要功能。使用 AI 熟悉的技術組合：Expo、React Native，需要帳號功能的話再加 Supabase。一個畫面一個畫面做，每次只提一個小任務，每一步都測試。先用開發版 build、再用 TestFlight 在你的 iPhone 上測試，之後再串接金流、準備 App Store 資料並送交 Apple。

### 怎麼檢查 AI 寫的程式碼？

每次修改都要看過：哪些檔案改了、為什麼改，以及是否符合你的要求。盡早把 App 裝到你自己的 iPhone 上，之後每個重要階段都再裝一次。確認 Supabase 的存取規則（RLS 政策）已經啟用。也要確認沒有任何秘密金鑰出現在 App 的程式碼裡，因為 App 可能被反編譯。

### 為什麼 AI 寫的 paywall 在審查人員那邊是空的？

paywall 的程式碼很簡單。最難的是三個地方之間的一致性：App Store Connect 的產品、它們在 RevenueCat 的設定，以及顯示它們的程式碼。識別碼差一個字元，或某個產品還沒送審，paywall 就會是空的。沒有這些後台的適當存取權限，AI 無法檢查這種一致性。


## 你的專案

[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 €。
