我更新到Xcode 9,現在當我構建捆綁目標時,它不再包含xcasset圖像資源。Xcode 9不再將xcasset複製到捆綁目標
設置:
結果
在Xcode 8的另一臺機器上,我可以構建相同的捆綁目標,並且存在TestCatalog中的圖像。
注意:TestImage.png(存在於任何xcassets之外)在Xcode 9中按預期包含在內。這使我認爲該問題與xcassets的包含方式有關。
感謝您的任何幫助。
我更新到Xcode 9,現在當我構建捆綁目標時,它不再包含xcasset圖像資源。Xcode 9不再將xcasset複製到捆綁目標
設置:
結果
在Xcode 8的另一臺機器上,我可以構建相同的捆綁目標,並且存在TestCatalog中的圖像。
注意:TestImage.png(存在於任何xcassets之外)在Xcode 9中按預期包含在內。這使我認爲該問題與xcassets的包含方式有關。
感謝您的任何幫助。
它工作得很好! 你假設Assets.car不是你的資產目錄,但它是。 你假設你的圖像不在裏面,但它們是。
如果Xcode之前將圖片拉出資產目錄並將它們放在框架頂層,即是錯誤的行爲!資產目錄圖像應該被編譯到資產目錄的編譯版本中(.car文件)。現在正是發生了什麼事情。沒有理由不在編譯過程中重命名資產目錄(因爲無論如何您都無法在代碼中直接通過名稱直接引用資產目錄)。
您可以通過閱讀編譯過程中生成的報告來確認發生了什麼。但是,您不會將其包含在屏幕截圖中。我會給你看。這裏是我的項目,類似於你:
下面是該報告的相關部分:
看到最後幾行? MyFrameworkAssets.xcassets
已被編譯到名爲/MyCoolFramework.framework/Assets.car
的資產目錄中,完全與您的項目中一樣。
所以我認爲這個問題僅僅是你正在試圖從這個「從外部」(即從外部)。使用終端)和你不明白你所看到的。真正知道這是否有效的方法是讓你的框架代碼引用一個圖像並顯示它,而你沒有這樣的代碼。 (實際上,你的框架根本沒有代碼,所以它是一個相當無用的框架。)或者下載AssetCatalogTinkerer並查看assets.car文件。你會看到你的圖像在那裏!
(順便說一句,我也認爲你的項目非常糟糕主辦。屬於框架的圖像和資產目錄應在框架的文件夾。)
你是對的,謝謝! 僅供參考:當使用具有--minimum-deployment-target <7.0的動作器時,它創建Assets.car,並且將所有從xcassets內的png拷貝到捆綁包中。將我的最低部署目標更新到8.0是導致更改的原因,而不是Xcode 9本身(儘管Xcode 9是爲什麼我必須更新最低部署目標,因爲它不支持早於7的iOS構建的xib!)。 –
「還將xcassets中的所有png拷貝到捆綁包中」因爲您要求運行的系統版本非常古老,以至於資產目錄尚未發明! – matt