swift 将图片资源打包成Bundle

有时在项目中直接把图片放到Assets.xcassets中,或者直接拖拽到项目中,会使得项目的包过大。

解决办法:需要将图片资源打包成bundle

 

打包过程如下:

 

1、创建bundle

选择target下的+号-->选择macOS-->选择Framework & Library 下的Bundle,创建bundle

swift 将图片资源打包成Bundle_第1张图片

swift 将图片资源打包成Bundle_第2张图片

2、配置bundle

前往build setting修改以下属性

1) ”base sdk “ 改为 iOS(因为创建的时候是基于macOS创建的,所以要修改成iOS)

swift 将图片资源打包成Bundle_第3张图片

2)“Build Active Architecture Only” 设置为yes(仅编译当前环境,如果每个环境都编译一遍会使包变大)

swift 将图片资源打包成Bundle_第4张图片

3)"Skip Install" 设置为 NO(不需要安装相关配置)

swift 将图片资源打包成Bundle_第5张图片

4)“Installation Directiotory ”删掉后面的路径(不安装相关配置,也不需要安装路径)

swift 将图片资源打包成Bundle_第6张图片

5)"COMBINE_HIDPI_IMAGES" 设置为 "NO"(不然图片会是tiff格式)

swift 将图片资源打包成Bundle_第7张图片

6)"IOS Deployment Target" 设置为 "iOS 9.0"为了兼容更多版本

swift 将图片资源打包成Bundle_第8张图片

7)"Strip Debug Symbols During Copy" 中"Release"模式设置为 "YES"

swift 将图片资源打包成Bundle_第9张图片

8)Code Signing Identity   选择 Don't Code Sign 

swift 将图片资源打包成Bundle_第10张图片

 

3、导入图片

在build phases 中的 copy bundle resources 点击 + 号添加图片资源

swift 将图片资源打包成Bundle_第11张图片

4、编译生成bundle包

将项目调成在真机模式下 然后command+b编译程序

swift 将图片资源打包成Bundle_第12张图片

找到项目的products 中的 icon.bundle,右键 show in finder,找到生成的bundle包,将其拖入项目中

swift 将图片资源打包成Bundle_第13张图片

swift 将图片资源打包成Bundle_第14张图片

swift 将图片资源打包成Bundle_第15张图片

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/[email protected]")

 

你可能感兴趣的:(Swift,iOS开发,图片资源,bundle,swift)