有时在项目中直接把图片放到Assets.xcassets中,或者直接拖拽到项目中,会使得项目的包过大。
解决办法:需要将图片资源打包成bundle
打包过程如下:
1、创建bundle
选择target下的+号-->选择macOS-->选择Framework & Library 下的Bundle,创建bundle
2、配置bundle
前往build setting修改以下属性
1) ”base sdk “ 改为 iOS(因为创建的时候是基于macOS创建的,所以要修改成iOS)
2)“Build Active Architecture Only” 设置为yes(仅编译当前环境,如果每个环境都编译一遍会使包变大)
3)"Skip Install" 设置为 NO(不需要安装相关配置)
4)“Installation Directiotory ”删掉后面的路径(不安装相关配置,也不需要安装路径)
5)"COMBINE_HIDPI_IMAGES" 设置为 "NO"(不然图片会是tiff格式)
6)"IOS Deployment Target" 设置为 "iOS 9.0"为了兼容更多版本
7)"Strip Debug Symbols During Copy" 中"Release"模式设置为 "YES"
8)Code Signing Identity 选择 Don't Code Sign
3、导入图片
在build phases 中的 copy bundle resources 点击 + 号添加图片资源
4、编译生成bundle包
将项目调成在真机模式下 然后command+b编译程序
找到项目的products 中的 icon.bundle,右键 show in finder,找到生成的bundle包,将其拖入项目中
5、使用bundle中的图片
使用方式一:通过Bundle
let bundlePath = Bundle.main.path(forResource: "icon", ofType: "bundle") let bundle = Bundle.init(path: bundlePath!) let imageStr = bundle.path(forResource: "like@2x", ofType: "png")使用方式二:通过字符串地址
UIImage.init(named: "icon.bundle/like@2x.png")