iT邦幫忙

2026 iThome 鐵人賽

DAY 27
0
Vibe Coding

從零打造 AI 全端應用:Vibe Coding 結合 n8n 視覺化工作流實戰系列 第 27 篇

Day 27:踏入蘋果的領地:發布 TestFlight 內部封測與上架前哨戰

  • 分享至 

  • xImage
  •  

Day 27:踏入蘋果的領地:發布 TestFlight 內部封測與上架前哨戰

嗨,大家今天過得好嗎?歡迎來到鐵人賽 Day 27。

昨天我們為 App 換上了精美的 Icon 與啟動畫面,專案在本地端已經無懈可擊。但軟體開發有一句名言:「在我的電腦上跑明明是好的!」如果 App 只能插著傳輸線在你的 iPhone 上跑,那它永遠無法成為一個真正的產品。

今天,我們要跨出 Localhost 的最後一步,進入蘋果的領地。我們要把這套 AI 硬體推薦 App 打包上傳到 Apple 的伺服器,並透過 TestFlight 發布給我們的第一批內部測試人員!

課前準備:入場券 (Apple Developer Program)

要將 App 上傳到 App Store 或使用 TestFlight,你必須擁有付費的 Apple Developer 帳號(每年 99 美金)。這筆錢是省不掉的。
假設你已經付費開通,並且在 Xcode 的 Settings -> Accounts 裡面登入了你的 Apple ID。

第一步:在 App Store Connect 建立專案身分證

在上傳程式碼之前,我們得先去蘋果的後台幫 App 建檔。

  1. 打開瀏覽器,登入 App Store Connect。
  2. 點擊 我的 App (My Apps),然後按左上角的 + 號,選擇 「新建 App」。
  3. 填寫基本資料:
    • 平台: iOS
    • 名稱: 填入昨天我們設定的名稱(例如:AI 配單大師)。
    • 主要語言: 繁體中文。
    • 套裝組 ID (Bundle ID): 選擇與你 Xcode 專案裡一模一樣的 Bundle Identifier(例如 com.yourname.aihardware)。
    • SKU: 內部料號,自己看得懂就好(例如 AI-HW-001)。
  4. 按下建立。現在蘋果的伺服器已經準備好接收你的程式碼了。

第二步:Xcode 終極打包 (Archive)

回到 Xcode,我們要進行神聖的「打包」動作。

  1. 切換目標裝置: 在 Xcode 頂端的裝置選單,不能選模擬器,也不能選你插著線的手機。請務必拉到最上面,選擇 Any iOS Device (arm64)。
  2. 開始打包: 點擊頂部選單的 Product ➔ Archive。
  3. Xcode 會開始卯起來編譯整個專案。幾分鐘後,會彈出一個名為 Organizer 的視窗,裡面會列出你剛剛打包好的版本。
  4. 點擊右邊大大的藍色按鈕 Distribute App。
  5. 選擇 TestFlight & App Store,然後一路按 Next。Xcode 會自動幫你處理複雜的憑證與簽名 (Automatic Signing)。
  6. 最後按下 Upload,看著進度條跑完,你的 App 就成功飛上雲端了!

經典踩坑:卡在「缺少出口合規證明」的無限輪迴

當 Xcode 顯示上傳成功後,你興高采烈地打開 App Store Connect 的 TestFlight 頁籤,你會看到你的版本顯示為「處理中 (Processing)」。

大概過了 10 分鐘,處理完畢了,但旁邊卻亮起了一個黃色警告:「缺少出口合規證明 (Missing Compliance)」。
如果你點進去,蘋果會問你:「你的 App 是否使用了加密技術?」如果你回答否,才能開始測試。最崩潰的是,以後你「每一次」上傳新版本,它都會問你一次!

這對採用 CI/CD 或頻繁發布 TestFlight 的工程師來說絕對是個災難。

實戰解法:一勞永逸的 Info.plist 設定

因為我們的 App 只有呼叫標準的 HTTPS API,並沒有實作什麼特殊的軍事級加密演算法,所以我們可以宣告豁免。

請回到 Xcode,打開你的 Info.plist(或是點專案設定的 Info 頁籤):

  1. 新增一個 Key,叫做 App Uses Non-Exempt Encryption(它的原始 Key 名稱是 ITSAppUsesNonExemptEncryption)。
  2. 把它的 Type 設為 Boolean,Value 設為 NO。

只要加了這一行,未來你上傳的任何版本,蘋果系統就會自動幫你跳過那個煩人的問卷調查,App 處理完立刻就能開放下載!

第三步:發放 TestFlight 測試邀請

搞定了合規證明後,我們終於可以把 App 發給朋友了!

在 TestFlight 的世界裡,測試分為兩種:

  • 外部測試 (External Testing): 可以產生公開連結讓任何人下載,但蘋果會進行大約一天的「簡易人工審查」。
  • 內部測試 (Internal Testing): 只能邀請你開發團隊裡的人,但完全不需要審查,秒發秒測!

我們先使用內部測試:

  1. 在 App Store Connect 的 TestFlight 頁籤,左側點擊 「內部測試 (Internal Testing)」 旁邊的 + 號。
  2. 建立一個群組(例如:QA Team)。
  3. 把你自己或朋友的 Apple ID 信箱加進這個群組。
  4. 將剛剛上傳的版本加入這個群組。

幾秒鐘後,你的手機就會收到一封來自 Apple 的 Email 與推播通知。打開手機上的 TestFlight App,點擊下載...

恭喜你!你做出來的 AI 硬體推薦 App,現在就像個真正的產品一樣,安裝在你的 iPhone 主畫面上了!不插線、不靠模擬器,點開就能順暢呼叫遠端 VPS 上的 n8n 引擎!

小結

今天我們成功突破了上架流程中最繁瑣的第一關,處理了打包、上傳、以及討人厭的出口合規地雷,並完成了首次的 TestFlight 發布。

看著自己一手打造的 App 在實體機上順暢運行,那種成就感絕對是無與倫比的。
但請別高興得太早,TestFlight 只是給「自己人」用的。如果你想要讓 App 正式登上 App Store 供全世界下載,我們即將面對軟體開發界最令人聞風喪膽的終極 Boss:「Apple 官方 App Review 審查」。

特別是我們這種「AI 生成內容」的 App,這兩年可是蘋果審查團隊嚴格盯防的重點對象!
明天,我們將直擊 Apple App Store 審查指南中,針對 AI App 的「三大死亡陷阱」與對應解法。準備好迎戰審查員了嗎?

我們 Day 28 見!


上一篇
Day 26:人靠衣裝 App 靠包裝:搞定 App Icon、啟動畫面與專案細節拋光
下一篇
Day 28:迎戰終極 Boss:破解 Apple 審查指南中「AI 應用的三大死亡陷阱」
系列文
從零打造 AI 全端應用:Vibe Coding 結合 n8n 視覺化工作流實戰 共 28 篇
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言