![](/img/trans.png)
[英]Using named colors from asset catalogue in IBDesignable Views crashes IB even when specifying the Bundle
[英]Does Both Referencing an Asset Catalogue and Including it from a Framework Create Duplication?
正如此處和此處所討論的,將可重用圖像托管在Framework的.xcassets
文件中,然后在應用程序的故事板/ XIB中使用這些圖像的唯一明顯方法是,直接在應用程序的內部手動創建對該目錄文件的引用項目。 這會將資產放入應用程序的主捆綁包中,並在嘗試通過Interface Builder使用資產時避免了該錯誤:
無法加載標識符為“ BundleName”的捆綁包中筆尖引用的“ ImageName”圖像
但是,我的問題是: 這會導致在構建時資產重復嗎? iOS是否足夠聰明,不會加倍兩者的資產:
如果這確實導致重復,那么還有什么其他方法可以更有效地達到相同的結果? 該框架需要嵌入到應用程序中,因為它包含其他可重用的代碼,並且資產也必須位於框架的目錄中,因為它們也在其他應用程序中使用。
蘋果的目標是最小化資產所需的空間,因此資產被合並並壓縮到一個名為“ Asset.car”的文件中。
當您提交給應用商店時,將啟動一個名為“應用細化”的過程,該過程將為不同的實際設備創建變體。
您可以在本地模擬該過程,甚至可以使用第三方工具在“ Asset.car”文件中查看。
我在此答案中詳細描述了整個過程: 使用Xcode 10構建iOS10上的像素化圖像
為了自己測試,我做了以下工作:
然后,執行上面鏈接的答案中所述的過程,並提取Asset.car文件。
當查看內部的第三方工具時,可以看到該圖像僅在其中一次。
好消息:像預期的那樣,沒有重復發生。
截圖
在屏幕截圖中,您可以看到:
具有框架和應用程序以及后台的.xcassets的Xcode項目結構
情節提要中唯一圖像的使用
在Finder右下角區域中提取的Assets.car
最后在左下角提到的第三方工具,在那里您看到文件僅存在一次
更多信息
就像在其他答案中一樣,我建議您看一下WWDC 2018的這段視頻:第227節,優化應用程序資產, https://developer.apple.com/videos/play/wwdc2018/227/
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.