用 AI 開發 iOS App:常見陷阱與檢查方法
作者:Mehdi Azizi
更新於 ,9 分鐘
Claude、ChatGPT、Cursor 寫 iOS 程式碼很快,但簽署、訂閱、審查和實機測試常出錯。
用 AI 開發 iOS App:簡短回答
可以,就算你是新手,也能用 AI 開發 iOS App。這種開發方式有個名字,叫做 vibe coding。Claude、ChatGPT 或 Cursor 很會寫畫面、導覽、簡單邏輯和資料庫呼叫。它們做不好的,是程式碼以外的一切:App 簽署、App Store Connect 設定、訂閱、Apple 審查,以及只有在真的 iPhone 上才會出現的閃退。
換句話說,AI 在最顯眼的那部分工作上幫你省下好幾週,卻把決定 App 能不能上架的那部分留給你自己處理。這篇指南告訴你界線在哪裡、怎麼引導 AI 讓它保持有用,以及怎麼在 Apple 或使用者替你發現問題之前,先檢查它產出的東西。
我每天都用 Claude 和 Cursor 寫自己的 iOS App。Solys(一款附小遊戲的鬧鐘)和 TradaZen(一款交易模擬器)都已經上架 App Store。Nolera 和 Clic 曾被 Apple 退件,後來修正了。以下內容全部來自這些實際工作,不是 demo。如果你還在猶豫要選哪個工具,我在另一篇指南比較了用 Claude Code、Cursor 和 ChatGPT 做 iPhone App。
AI 真正擅長的事
畫面與導覽
把一個畫面描述清楚(顯示什麼、每個按鈕做什麼、清單是空的時候會怎樣),AI 幾秒內就能交給你一個乾淨的元件。這是效益最驚人的地方,尤其是 React Native 和 Expo,因為 AI 看過大量這類程式碼。這也是我所有 App 用的技術組合,原因我在 用 React Native 和 Expo 開發行動 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 識別碼、隱私權聲明、加密相關問題、截圖、使用條款連結:這些資訊必須和送審的版本一致。有些 agent 可以在已登入的瀏覽器裡操作,例如 Claude Code 搭配 Chrome。這種存取必須經過授權,結果也要檢查;沒有讀取目前介面、只是背出來的流程,可能已經過時。
訂閱
這是 AI 最浪費你時間的地方。paywall 的程式碼很簡單。難的是三個地方之間的一致性:在 App Store Connect 建立的產品、它們在 RevenueCat 的設定,以及顯示它們的程式碼。識別碼差一個字元、某個產品沒有跟版本一起送審,你的 paywall 在審查人員那邊就會是空的。只要你給 AI 適當的存取權限,它就能讀這些後台;沒有這些權限,它無法檢查後台和程式碼是否一致。完整的工作內容在 iOS App 內訂閱 這頁有詳細說明。
Apple 審查
AI 知道 App Review Guidelines 的大方向,但它不會用審查人員的眼光看你的 App。它不會主動告訴你:某個必要畫面在小尺寸 iPhone 上被切掉了、評分請求跳出來得太早、審查備註裡少了示範帳號,或是你的 App 太像網站,會碰到 guideline 4.2。前兩個是我在 Solys 真的吃過的退件,寫在Apple 為什麼會退件你的 App。
真實 iPhone 上的閃退
模擬器和開發版 App 能容忍很多問題。真的 iPhone 加上正式環境就不行。build 裡少了某個原生模組、權限沒有說明文字、啟動時太早讀取資料:App 一打開就馬上關掉,沒有任何訊息。agent 可以執行測試或分析截圖,但前提是驗證環境允許。光是模擬器的結果,不能證明裝在你 iPhone 上的二進位檔沒問題。每次上傳前,你都要自己把 App 裝到手機上,TestFlight 就是為此而生的。
AI 寫的程式碼看起來是對的。只有在你的 iPhone 上測試,才知道它是不是真的對。
怎麼引導 AI,讓它保持有用
問題幾乎從來不在模型夠不夠聰明,而是你給它讀了什麼。
一次給足你的背景資訊
在專案根目錄寫一個簡短的檔案,描述你的技術組合(Expo、SDK 版本、Supabase、RevenueCat)、資料夾結構和你的規則。Claude Code 會讀 CLAUDE.md 檔案,Cursor 有自己的規則檔。沒有這些背景,AI 只能用猜的,而且常常猜成別的技術組合。我的用 Claude Code 開發 App 教學有這個檔案的完整範例。
拆成小任務
「幫我做一個有訂閱功能的習慣追蹤 App」會產出一個龐大又脆弱的專案。「建立列出今日習慣的畫面,包含空狀態和載入狀態」會產出一個你五分鐘就能看完、測完的畫面。一個任務、一個可驗證的結果,然後再做下一個。
先要計畫,再寫程式碼
凡是會動到多個檔案的事,先說「提出計畫,先不要寫程式碼」。你看過計畫、修正不對的地方,再讓它開始。這樣就能避免那種為了加一個按鈕,AI 把你半個專案重寫掉的意外大改。
讓它讀最新的文件
工具變化很快:Expo、RevenueCat 和 App Store Connect 經常改版。覺得某個回答可疑時,把官方文件頁面貼進對話,或用能幫它取得文件的工具。讀今天文件的 AI,比記得兩年前文件的 AI 少犯很多錯。
決定權留在自己手上
AI 提議,你決定。點子、價格、App 不做什麼:這些是你的工作。如果你讓 AI 加上它建議的每個功能,你會得到一個十件事都做得普普通通的 App,而不是一件事做得非常好的 App。要規劃第一個版本,請看 iOS App MVP 這頁。
怎麼檢查 AI 產出的東西
這項能力,區分了真正上架的人和累積一堆半成品的人。
每次修改都要看過
你不需要一行一行全部看懂。但你必須能回答三個問題:哪些檔案改了、為什麼改,以及這是不是我要求的。如果 AI 動了跟你的需求無關的檔案,接受之前先問它為什麼。
在你的 iPhone 上測試,不只在電腦上
盡早把 App 裝到你自己的手機上,之後每個重要階段都再裝一次。檢查安裝後的首次啟動、飛航模式、小螢幕和大螢幕、表單打開鍵盤時的狀況。這是我每個 App、每次送交 Apple 之前都會遵守的規則。
加上能看見你看不見之處的工具
在我的 App 上,Sentry 會回報閃退並指出出問題的程式碼行,PostHog 會顯示使用者在哪裡放棄。沒有它們,正式環境的 bug 會一直隱形,直到一則負評出現。AI 可以幫你安裝;但它們告訴你的事,你得自己去看。
注意資料安全
AI 在 Supabase 建立資料表時,要確認存取規則(RLS 政策)確實啟用:每個使用者只能讀取自己的資料。也要確認沒有任何秘密金鑰出現在 App 的程式碼裡,因為 App 可能被反編譯。如果你沒有明確禁止,AI 很容易犯這兩個錯。
反過來問它
程式碼寫好之後,問它:「這裡有什麼可能會壞掉?」或「用 Apple 審查人員的角度看這段程式碼」。寫出程式碼的同一個模型,換個角度提問時,常常能找出自己的疏漏。這不能取代你在 iPhone 上的測試,但能減少來回修改。
新手實際可行的路線
- 選一個超小的點子:一個主要功能,不是十個。
- 使用 AI 熟悉的技術組合:Expo、React Native,需要帳號功能的話再加 Supabase。
- 一個畫面一個畫面做,每次只提一個小任務,每一步都測試。
- 在你的 iPhone 上測試,先用開發版 build,再用 TestFlight。
- 串接金流:App Store Connect 裡的產品、RevenueCat、paywall。
- 準備 App Store 資料:App 頁面、截圖、隱私權、給審查人員的備註。
- 送交 Apple,仔細讀回覆,修正被要求的地方。
每個步驟都有陷阱,AI 能幫你處理其中一半。想看全貌,開發 iPhone App 這頁詳細介紹了完整流程。如果你想知道不自己寫一行程式碼能走多遠,請看不寫程式也能開發 App。
用 AI 開發你的 iOS App,一路到上架 App Store
AI 改變了誰能開發 iOS App。它沒有改變 Apple 對上架的要求,也沒有改變 App 拿到第一批訂閱收入需要做的事。這部分我放進了 iOS Kit:我自己 App 的起始程式碼(包含訂閱),以及每個步驟的 Claude Code skills。依照你使用的工具,流程有詳細說明:Claude Code 課程 或 vibe coding 課程。首頁會一步一步示範怎麼用這種方式開發行動 App。
不知道卡住你的是程式碼、AI 還是 Apple?免費診斷會告訴你,並寄給你我的 Apple 防退件檢查清單。
我不保證你會有收入,也不保證能上架:審核由 Apple 決定,其餘由市場決定。我給你的,是我自己在 App 上實際使用的方法。
常見問題
新手能用 AI 開發 iOS App 嗎?
可以。AI 很會寫畫面、導覽、簡單邏輯和資料庫呼叫。它做不好的是程式碼以外的一切,像是簽署、App Store Connect、訂閱、Apple 審查,以及只有在真的 iPhone 上才看得到的閃退。
開發 iOS App 該用哪個 AI?
Claude、ChatGPT 或 Cursor 都很會寫畫面、導覽和簡單邏輯。問題幾乎從來不在模型夠不夠聰明,而是你給它讀了什麼。把你的技術組合、規則和最新文件給它。我在另一篇指南比較了用 Claude Code、Cursor 和 ChatGPT 做 iPhone App。
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 無法檢查這種一致性。