我們有一個Xcode項目既包括視網膜圖形基於NIB的用戶界面和UI網頁視圖。該項目爲Mac構建了一個應用程序。COMBINE_HIDPI_IMAGES和視網膜圖形的的WebView
該項目採用兩個獨立的構建階段將這些圖形移動到最終的應用程序。第一個是傳統的Copy Bundle Resource,它可以將1x和2x圖形集成到應用程序包中。第二個是複製文件構建階段,它將Web圖形複製到具有「圖形」子路徑的單獨資源目標中。
(這樣就避免了一些命名衝突,讓網頁設計師使用熟悉的「圖形/ whatever.png」路徑)。
在構建這個項目中,我們得到一個相關性分析錯誤,說:
多表示圖像「[email protected]」不能由 拷貝文件處理建設階段 - 嘗試複製資源建設階段,或禁用 COMBINE_HIDPI_IMAGES。
很容易關閉部署生成設置,名爲「合併高分辨率圖稿」,但這會影響基於NIB的用戶界面以及WebView用戶界面中使用的圖形。打開該選項後,button.png
和[email protected]
合併到應用程序包的Resource文件夾中的button.tiff
。沒有它,使用原來的名字。
據我所知,應用程序行爲正常,但由於COMBINE_HIDPI_IMAGES默認設置爲開啓,我懷疑將圖形部署爲單個文件會有一些好處(可能加載和緩存更快)。
理想情況下,我想在複製文件構建階段只禁用COMBINE_HIDPI_IMAGES。我不能想出一個辦法做到這一點,希望別人在這裏可以...
更新2012年8月27日
對於這個特定的應用,來解決這個問題最簡單的方法是用2x版本替換所有HTML圖像。由於標籤指定了寬度和高度,圖像在非Retina設備上縮小了50%。質量很好,並且由於它們從本地文件系統加載,所以不會有明顯的性能影響。
更新2012年8月28日
我們採取另一種方法是用命名約定。某些HTML圖像是使用CSS指定的(使用媒體查詢選擇Retina或非Retina版本。)爲了避免將這些圖像合併爲單個HiDPI圖像時出現問題,我們使用whatever.png和whatever_retina.png。
如果這不起作用,並且您正在使用_xcodebuild_構建,則可以使用'-xcconfig'參數來指定所需的版本。 – Andrew