iT邦幫忙

0

Copilot 進入 Xcode,先分清內建能力與外部工具的權限

  • 分享至 

  • xImage
  •  

假設你只是想替 SwiftUI 畫面的一個按鈕加上載入狀態。Agent 很快交出修改,順便回報「已完成」。接著你才發現:它說的完成,可能只有改好檔案,還沒建置,更沒看過失敗時的畫面。

這時,知道它叫什麼模型,對驗收沒有太大幫助。你需要知道它拿到了哪些專案資訊、能用哪些工具,以及哪些檢查真的執行過。

11 月 4 日,Copilot 新增了 Xcode 內建 coding assistant 的使用入口,從 Xcode 27.3 beta 開始提供 public preview;原有的 Copilot for Xcode extension 仍是另一個選項。這讓選擇變多,也讓「我在 Xcode 裡用 Copilot」這句話不夠精確。

先記清楚使用入口,再用一個小任務核對能力。下文是建議演練,沒有在本機實測。

專案資訊、內建能力、額外授權要分開看

把 Xcode 的 Intelligence 設定全叫作「agent 權限」,很容易看錯檢查位置。

層次 能確認的能力或行為 團隊還要核對什麼
專案資訊 已設定的 agent 處理請求時,可能存取專案檔案與其他資訊 專案是否適合交給該供應商處理;隱私與資料使用條件是否符合團隊要求
Xcode 內建能力 在 coding assistant 選定 agent 後,會取得建置、測試等 Xcode 能力 選用的 scheme、測試目標,以及本次實際執行的結果
外部命令與工具 Intelligence 裡的 Agents > Permissions 可管理先前允許的命令與工具 既有授權是否仍需要;這個小任務是否真的用得上

尤其別把 Allowed Commands 當成所有能力的總開關。清單裡沒有你手動加的命令,不代表 agent 沒有 Xcode 的 build/test 能力;反過來,具有測試能力,也不代表這次已經跑過測試。

要查專案資訊的分享說明,可以從 Intelligence 裡的「About Intelligence in Xcode & Privacy…」查看,再核對所用 agent 的隱私政策與條款。不能因為操作介面在本機,就推論專案資訊不會送到外部服務。

Permissions 裡,Allowed Commands 可以新增或移除命令,Allowed Tools 可以移除先前允許的工具。這些設定值得逐項檢查,但單靠清單,無法推論命令參數如何比對、是否有網路隔離,或移除授權會不會終止已經在跑的程序。

先讓它交計畫,別急著替它開權限

第一次演練,選可丟棄的本機範例專案。不要帶憑證、正式帳號或會碰到正式資源的設定;如果要呈現成功與失敗狀態,先準備本機假資料或既有的測試替身。

Xcode 可用 /plan 進入計畫模式,先探索做法而不修改程式碼。針對前面的按鈕,可以提出這樣的要求:

先規劃如何替這個畫面加入載入狀態,不要修改檔案。列出預計修改的檔案、會使用的 Xcode 能力、是否需要額外命令或工具,以及完成後怎麼檢查。只處理這個畫面與既有相關測試,不新增依賴;範例資料留在本機,不連正式服務。

這段要求只是工作約定。計畫模式不能直接當成作業系統層級的安全沙箱;即使範例不連正式服務,模型處理請求時仍可能把專案資訊送到外部。

核閱計畫時,特別看那些不屬於需求的動作。加一個載入中的按鈕,為什麼要安裝新套件?為什麼要存取另一個服務?如果用途講不清楚,就先停下來縮小任務,不要為了讓流程跑完而一路按允許。

讓它改一處,再分別驗收程式碼與畫面

計畫確認後,依目前 Xcode 介面的流程離開計畫模式,再讓 agent 做這次有限修改。先不要順手把附近的重構、套件升級一起交出去。

人工看 diff 時,先核對改動是否留在約定的畫面與既有測試內,有沒有多出依賴、網路呼叫或與需求無關的專案設定。Prompt 寫了「只改這裡」,仍然要對照實際改動。

接著使用專案原有、已確認不會碰正式資源的建置與測試入口。記下實際選用的 scheme、測試目標,以及執行結果的位置。這裡不提供一行通用命令,因為每個專案的環境和測試入口未必相同。

畫面還得另外驗。這個假設任務至少要看:

  • 載入中是否有可辨識的狀態,並避免重複觸發同一個動作。
  • 完成後是否解除載入狀態,呈現預期結果。
  • 失敗後是否解除載入狀態,留下能理解的錯誤提示與重試方式。

這些條件要由人驗收,不能假設 Copilot 會自動做到。建置過了,按鈕還是可能一直轉圈。

範例沒有自動化測試,就直接記「未執行自動化測試」,另列人工檢查過的項目。環境卡住時,記下卡點,不要把 agent 的文字回報換成測試通過。中途若出現新的授權請求,先確認用途,必要時取消這次操作;演練不包含部署、正式簽章或上架。

留下短紀錄,下一次才知道差在哪裡

團隊文件留一份短紀錄就夠了,不必貼上整段對話:

  • 演練日期、Xcode 版本與是否為 beta。
  • 使用入口:內建 coding assistant 或 extension;實際 agent/model,介面未顯示的就註明無法確認。
  • 專案基準 commit、任務範圍與最後的改動。
  • 本次額外允許的命令/工具,以及仍待確認的授權。
  • 執行過的建置、測試與人工畫面檢查;未跑的項目和原因分開列。

這份清單要照實際結果填。換了 agent、模型或 Xcode 版本後,用同一個小任務重查,也比較容易找出差異。

較長的工作需要另行委派時,也要保留任務範圍與驗收方式。互動開發與委派任務的分工可作為延伸閱讀;先決定工作怎麼交,再核對目前工具的能力,不必把某款產品固定綁在一種分工上。

登入完成之後,還有一次導入驗收

我會把第一個任務刻意縮小。先確認一個畫面用了哪些能力、授權是否合理、結果有哪些證據,再決定要不要擴大使用。

如果最後只有「已完成」三個字,就回頭補查實際 diff、建置或測試結果,以及畫面狀態。能指出哪裡驗過、哪裡還沒驗,才有根據把下一個任務交出去。

參考資料


圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言