Xcode Group Lab:把 日常摩擦 變成可調整的工作流
這場 Q&A 不是單一 API session,而是 Xcode 團隊把多年開發痛點拆成具體做法:少一點 project file conflict、少一點 Derived Data 儀式、更多可觀測的 build、debug、preview 與 agent workflow。
最有價值的不是某個快捷鍵,而是把 Xcode 當成一套可調整的系統:檔案組織、搜尋、profiling、breakpoint、CI、signing 與 agent context 都要有明確的 source of truth。
這場 Lab 在拆四種 Xcode 日常問題
Playground macro 讓任意 Swift file 變成實驗場
不用離開專案建立獨立 playground;在 Swift file 裡用 macro 跑片段、看 expression results,也能拿來試 Foundation Models 或 UI preview。
用 folders 取代 groups,降低 project file diffs
藍色 folders 不把檔案清單寫進 project file,新增檔案時更不容易讓多人協作卡在 pbxproj conflict。
Breakpoint action 比 print debugging 乾淨
條件、hit count、sound、log message、backtrace 與 LLDB command 可以暫時觀測狀態,不必把臨時 print 留在程式碼裡。
Derived Data 是症狀,不是修復策略
Xcode 27 加了刪除 Derived Data menu item,但團隊強調反覆需要刪除通常代表 missing dependency、build race、空間壓力或 Xcode bug。
遇到 Xcode 卡住時,先問是哪一層壞掉
只是探索程式碼?
用 Open Quickly、Command-Shift-J、jump bar filter、find call hierarchy、type hierarchy 與 search navigator 篩出真正在改的範圍。
是 preview 或 playground 慢?
它們共用 build artifacts。先處理 modularization、explicit dependencies 與 build timeline,再期待 preview reload 變快。
是 runtime 狀態看不懂?
先用 variables view、conditional breakpoint、LLDB expression、memory graph 匯出到 Instruments,而不是只靠 PO 或 print。
是 build 不穩?
刪 Derived Data 可以救急,但要回頭查 target dependency、parallel build ordering、Swift Build log 與可重現的 feedback。
是 release pipeline?
Xcode beta 可以與舊版共存,但要管好 SDK 使用、xcode-select、Xcode Cloud matrix,以及 signing/provisioning 的責任邊界。
重點 1:Xcode 27 beta 可以試,但不要不小心升級產品約束
團隊明確說可以同機使用 Xcode 26 與 Xcode 27 beta,但要守住「仍能用 shipping Xcode build」這條線。新 SDK、新 project validation 或新專案格式一旦被正式採用,就可能影響要出貨的版本。
實務上要把 Xcode 27 當成探索與 CI matrix 的一格,而不是立刻替代 release toolchain。對要送 App Store 的 app,尤其要確認 xcode-select、Xcode Cloud workflow 與 local signing 設定沒有混用。
重點 2:搜尋與 profiling 是重構前的導航系統
這場 Lab 多次回到「先縮小範圍」:find call hierarchy 看 function call site,type hierarchy 看 protocol/類型繼承,search navigator 可用 regex、symbol、多字 proximity,再用下方 filter 做類 boolean 的收斂。
性能問題也一樣。Memory Graph Debugger 適合找 leaks,但 footprint 與時間線應該丟到 Instruments;flame graph、top functions、SwiftUI instrument、concurrency template 與 Foundation Models template 都是把問題從感覺拉回證據的方式。
重點 3:Agent workflow 要把上下文寫到磁碟
有開發者問到 coding agent context compression 後模型失去專案理解。Xcode 團隊的方向不是把全部內容塞進一個超長檔,而是先用 plan mode 產出可引用 artifact,讓模型在新 session 或不同模型間有穩定的 project source of truth。
這和本地 automation 很像:對長任務來說,plan、state、memory、checklist 與可重跑命令,比「希望 chat window 永遠記得」可靠。
風險與遷移注意事項
來源
主要來源為 Apple Developer YouTube RSS metadata、YouTube 影片與英文自動字幕。Group Lab 目前未找到 Apple Developer 影片頁 transcript,因此本頁以 Q&A 字幕內容整理,不臆測字幕以外的 demo。YouTube:WWDC26: Xcode Tips and Tricks Group Lab | Apple。
- →把 folders、search、hierarchy、preview pin、breakpoint actions 當成降低日常摩擦的工作流工具。
- →刪 Derived Data 可以救急,但反覆需要刪就要查 dependency、parallel build 或 Xcode bug。
- →Xcode 27 beta 可與舊版共存;release toolchain、SDK 使用與 signing 要清楚分層。
- →Agent context 要落成 plan/artifact,不要只依賴 chat session 記憶。