嗨,大家今天過得好嗎?歡迎來到鐵人賽 Day 27。
昨天我們為 App 換上了精美的 Icon 與啟動畫面,專案在本地端已經無懈可擊。但軟體開發有一句名言:「在我的電腦上跑明明是好的!」如果 App 只能插著傳輸線在你的 iPhone 上跑,那它永遠無法成為一個真正的產品。
今天,我們要跨出 Localhost 的最後一步,進入蘋果的領地。我們要把這套 AI 硬體推薦 App 打包上傳到 Apple 的伺服器,並透過 TestFlight 發布給我們的第一批內部測試人員!
要將 App 上傳到 App Store 或使用 TestFlight,你必須擁有付費的 Apple Developer 帳號(每年 99 美金)。這筆錢是省不掉的。
假設你已經付費開通,並且在 Xcode 的 Settings -> Accounts 裡面登入了你的 Apple ID。
在上傳程式碼之前,我們得先去蘋果的後台幫 App 建檔。
+ 號,選擇 「新建 App」。AI 配單大師)。com.yourname.aihardware)。AI-HW-001)。回到 Xcode,我們要進行神聖的「打包」動作。
Any iOS Device (arm64)。Product ➔ Archive。Distribute App。TestFlight & App Store,然後一路按 Next。Xcode 會自動幫你處理複雜的憑證與簽名 (Automatic Signing)。Upload,看著進度條跑完,你的 App 就成功飛上雲端了!當 Xcode 顯示上傳成功後,你興高采烈地打開 App Store Connect 的 TestFlight 頁籤,你會看到你的版本顯示為「處理中 (Processing)」。
大概過了 10 分鐘,處理完畢了,但旁邊卻亮起了一個黃色警告:「缺少出口合規證明 (Missing Compliance)」。
如果你點進去,蘋果會問你:「你的 App 是否使用了加密技術?」如果你回答否,才能開始測試。最崩潰的是,以後你「每一次」上傳新版本,它都會問你一次!
這對採用 CI/CD 或頻繁發布 TestFlight 的工程師來說絕對是個災難。
Info.plist 設定因為我們的 App 只有呼叫標準的 HTTPS API,並沒有實作什麼特殊的軍事級加密演算法,所以我們可以宣告豁免。
請回到 Xcode,打開你的 Info.plist(或是點專案設定的 Info 頁籤):
App Uses Non-Exempt Encryption(它的原始 Key 名稱是 ITSAppUsesNonExemptEncryption)。Boolean,Value 設為 NO。只要加了這一行,未來你上傳的任何版本,蘋果系統就會自動幫你跳過那個煩人的問卷調查,App 處理完立刻就能開放下載!
搞定了合規證明後,我們終於可以把 App 發給朋友了!
在 TestFlight 的世界裡,測試分為兩種:
我們先使用內部測試:
+ 號。QA Team)。幾秒鐘後,你的手機就會收到一封來自 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 見!