08
常見部署疑問
為什麼 AppIntentsTesting 應放在 UI Testing Target
因為測試目標是透過獨立進程接觸實際 App Intents 和系統整合,而非只測試一個純函式。UI Testing Target 能承載被測 App 邊界、Bundle Identifier 與簽名關係;普通單元測試仍然重要,但只能負責可隔離的查詢與轉換邏輯,不能單獨證明整條鏈路可用。
AppIntentsTesting 能否放進持續整合環境
可以,條件是遠端 Mac 能固定 Xcode、SDK 和模擬器執行環境,並在重啟後恢復測試所需狀態。CI 任務應保存 xcresult、主控台記錄與環境資訊,同時把 AppIntentsTesting 與單元測試、XCUITest、正式簽名發版分開;否則一次簽名失敗可能被誤判為 Intent 回歸。
如何測試 App Intent 的 Entity Query 和參數傳遞
先以可重建、可清理的固定 Entity 驗證字串查詢、識別碼解析和返回欄位,再以兩個連續 Intent 檢查結果能否傳遞。測試資料不能取自個人帳號現有內容,否則同名資料、殘留狀態和並行任務都可能製造只有 CI 才出現的錯誤。
遠端 Mac 執行 AppIntentsTesting 如何處理程式碼簽名
將被測 App、測試 Target 和相關產品的 Team 設定納入啟動檢查,使用可受控的團隊簽名身份,不要依賴遠端桌面上的個人登入會話。節點重啟後要重新確認憑證、Provisioning Profile、Bundle ID 和測試入口;簽名身份的同步方式應遵循 Apple 官方文件,而不是把私密檔案提交到 Repository。
AppIntentsTesting 能否取代 Siri、Shortcuts 和 Spotlight 人工測試
不能。它適合攔截 Intent 執行、Entity Query、參數傳遞及部分系統整合回歸,但不能完整模擬自然語音、Shortcuts 編排和使用者在 Spotlight 中尋找功能的體驗。Beta 階段應採用「自動化守住回歸、人工確認最終體驗」的雙層驗收方式。