在未來的MonoDevelop版本中(我的補丁沒有及時爲即將到來的4.0版本發佈),這不再是一個問題。
目前發生在MonoDevelop中3.X什麼是建設一個項目時,它只會複製已更改到應用程序包中的圖片,但是,建成後,MonoDevelop的調用是在Xcode一起安裝的腳本稱爲iphone-optimize
,它掃描整個應用程序目錄並使用pngcrush
來壓縮所有圖像(它也將所有plist文件轉換爲二進制plists)。 這個是如果你有很多圖像會導致如此緩慢的編譯時間的步驟。
剛過4。0分支關閉QAing,我寫了一個補丁,避免需要調用iphone-optimize
腳本。相反,MonoDevelop會做的是直接調用pngcrush
只有已更改的圖像,將正確的應用程序目錄位置作爲輸出參數傳遞給pngcrush
,以便我們避免額外的文件副本。
從我自己的測試,這使得大量改善建設時間爲許多圖像文件的項目。
在此期間,你可能做,是使iphone-optimize
腳本的備份(應/Applications/Xcode.app
下位於某處),然後修改它不會壓壞的圖像文件。然後,一旦你完成了這些工作,就可以預先壓縮項目中的所有png文件。 (注意:當我的補丁MonoDevelop最終發佈時,它也可以選擇禁用已經預先粉碎它們的圖像的開發人員調用pngcrush)。
您實際上不必在MonoTouch項目中設置「複製如果更新」,只需將構建操作設置爲「內容」即可。如果你改變這個,你的建造時間會加快嗎? – jonathanpeppers
我會嘗試!!,謝謝 –
正如jonathanpeppers所說,不要設置「Copy if newer」(複製到bin/Debug/iPhone /而不是到.app目錄中)。此外,BundleResource優於Content。 – jstedfast