問題背景

在 Xcode 16 之後,Apple 引入了一項名為 Buildable Folder 的新功能,旨在減少 .xcproj 檔案因為檔案新增、刪除、移動時的變更,進而降低 Git 版本控制時的衝突。然而,這項改變導致在 Xcode 16 中建立的專案,無法直接在 Xcode 15 或更舊版本開啟,可能會遇到類似以下的錯誤:

<aside> ⚠️

The project ‘xxx’ is damaged and cannot be opened. Examine the project file for invalid edits or unresolved source control conflicts.

</aside>

截圖 2025-02-21 上午11.42.12.png

在 Xcode 16 中,Buildable Folder 的變化包括:

  1. 新增的資料夾為藍色,而非 Xcode 15 以前的灰色群組 (Group)
  2. 資料夾內容順序固定為字母順序,無法手動調整。
  3. Xcode 16 新增檔案時會自動加入目標 (Target),但 Xcode 15 需要手動設定。
  4. 在 Xcode 16 建立的 Buildable Folder 直接記錄資料夾路徑,而不枚舉內部檔案,減少 .xcproj 檔案的變更。
  5. 在 Xcode 16 建立的專案,Xcode 15 無法正確解析,可能導致無法開啟或無法編譯

這導致如果你在 Xcode 16 建立或重新整理了專案的檔案結構,在 Xcode 15 可能會無法開啟或出現編譯錯誤。


解決方法

如果你需要在 Xcode 16 建立的專案回到 Xcode 15 使用,你需要 將 Buildable Folder 轉回傳統的 Group (群組),才能讓舊版 Xcode 正確解析。

在 Xcode 16 中進行 Convert to Group

  1. 開啟 Xcode 16 的專案
  2. 選擇 Project Navigator 中的 Folder(通常是藍色資料夾)。
  3. 右鍵點擊 → 選擇「Convert to Group」