新建KMM项目未包含Assets.xcassets,如何添加iOS端图片资源?
KMM iOS端图片资源处理方案
KMM官方提供的iOS项目默认模板确实未自带Assets.xcassets文件,属于正常设计,不是项目创建或误删导致的异常。你可以根据你的开发场景选择以下两种方案处理:
方案1:手动添加Assets.xcassets(适用于iOS端原生开发、资源仅iOS端使用的场景)
操作步骤和原生iOS项目添加资源库一致:
- 用Xcode打开KMM项目中的iOS工程,右键点击iOS项目根目录,选择
New File - 在资源分类中选择
Asset Catalog,命名为Assets后保存到iOS项目的本地目录 - 进入iOS项目的TARGETS配置页,打开
Build Settings,搜索Asset Catalog Compiler - Options,确认编译器已经自动关联到你新建的Assets文件,若未自动关联手动补全即可 - 后续iOS端独有的图片、图标、启动图等资源都可以直接导入这个Assets文件使用,操作逻辑和原生iOS开发完全相同
方案2:使用跨端资源管理能力(适用于资源需要Android、iOS两端共用的场景)
如果你的项目使用Compose Multiplatform开发跨端UI,不需要分别维护两端的资源,可以直接用Compose Multiplatform的跨端资源管理能力,无需单独给iOS端创建Assets文件:
- 在共享模块的
build.gradle.kts中启用Compose Multiplatform资源插件,完成基础配置 - 在共享模块的
src/commonMain目录下新建composeResources目录,按照规范分类存放图片、字体、字符串等公共资源 - 项目编译后会自动生成两端可直接调用的资源引用,iOS端打包时会自动把公共资源整合进最终包体,不需要额外手动管理iOS端资源
该方案仅适配使用Compose Multiplatform开发UI的项目,如果你iOS端使用原生SwiftUI/UIKit开发,优先选择方案1更符合原生开发习惯。
内容的提问来源于stack exchange,提问作者barryalan2633
相关产品推荐
相关产品推荐

