升級到 Xcode 6 後,專案無法再以 Xcode 5 編譯的問題

一般來說專案就算用 Xcode 6 開啟過,仍然可以回去用 Xcode 5 開啟編譯,但是一旦開始大量使用 Constraints 之後,會發現專案可能無法再以 Xcode 5.x 編譯,錯誤訊息為:

「The document “XXX” requires Xcode 6.0 or later.」以及「This version does not support constraints to layout margins. Open this document with Xcode 6.0 or later.」

The document requires Xcode 6.0 or later

這個問題主要是用到了 Auto Layout 的 margin 新功能,導致 Xcode 5 無法編譯。這類行的 XIB 或 storyboard 檔案原始碼會有這行:

<capability name="Constraints to layout margins" minToolsVersion="6.0"/>

這行清楚的點出了相容性的名稱及所需 Xcode 的最低版本,解決方式也就是朝讓 Xcode 自動消除這行下手。

而既然關鍵字是 margin,找來找去發現最可疑的就是「Relative to margin」這個選項:

Relative to margin 1

Relative to margin 2

把所有 Constraints 一個個點開檢查,只要這個選項有勾選的全部取消,然後再手動處理所有的問題或是警告,完成後專案應該就可以在 Xcode 5.x 裡面編譯成功了!

參考:http://stackoverflow.com/questions/25846600/

Leave a Reply

Your email address will not be published. Required fields are marked *