2016-12-16 37 views
1

很多時候,人們在xcode中遇到各種問題或構建錯誤,並被告知要清除派生數據來解決他們的特定問題。 Derived Data是什麼?刪除它會清除各種問題? Derived Data中包含了哪些內容?爲什麼清除派生數據會清除Xcode中的各種錯誤?

+0

大量的構建信息存儲在那裏,有時這些信息與您所做的更改衝突,Xcode不會更新它,因此清理它可以確保Xcode從完全乾淨的狀態構建您的代碼。 – EmilioPelaez

回答

3

Xcode的緩存文件夾中的很多數據,包括資產爲您的應用程序,(圖像,聲音),編譯後的代碼/庫等

的Xcode這樣做是爲了加快構建/運行/調試周期,如果它不得不每隔一段時間重新構建每一件東西,就可以在幾秒鐘內做出小改動和重建/測試。

但是,在某些情況下,您所做的更改將不會被Xcode檢測到,因此不會被納入您的下一次構建/運行。這是當你遇到奇怪的問題時,一些是顯而易見的,例如未被合併的改變的圖像,並且你會在你的構建中看到舊圖像。如果錯過的更改是您的代碼中沒有被合併的邏輯,那麼這個問題就不會那麼明顯,並可能顯示爲不正確的結果甚至崩潰。

清理派生數據文件夾(理想情況是Xcode關閉),下次強制完整構建,但需要花費額外的時間。當然,花費在編譯上的額外時間與嘗試調試和發現實際上不存在的問題的時間相比毫無意義。

+2

順便說一句,我是Xcode的一個名爲Watchdog的應用程序的開發者:https://itunes.apple.com/us/app/watchdog-for-xcode/id734258109?mt=12&uo=4&at=11lMGu&pt=17255&ct=SO爲您管理派生數據文件夾。它會在特定的時間自動清除它,讓你的生活變得更輕鬆。 –