最近项目在组件化,所以需要各种framework、pod,所以之前各个功能之间的图片需要逐一处理,用到Bundle打包图片,有利于方便和维护,下面就是我打包的记录,做一个整理。
1、选择新建工程,选择Mac OS -> Bundle -> 名称自己取
修改各种配置以及属性:
2、修改Base SDK 为iOS
(因为创建的时候是基于macOS创建的,所以要修改成iOS)
3、修改Build Active Architecture Only
设置为Yes 仅编译当前环境,如果每个环境都编译一遍会使包变大
4、Skip Install
设置为 NO 不需要安装相关配置
5、 Installation Directiotory
删掉后面的路径,不安装相关配置,也不需要安装路径
6、COMBINE_HIDPI_IMAGES 设置为NO
不然图片会是tiff格式
7、IOS Deployment Target
设置为自己项目最低支持的版本Target
8、Strip Debug Symbols During Copy
中Release
模式设置为 YES
9、添加图片到Bundle
10、打包选择真机和模拟器com + B,然后找到我们的包去看一下是否有我们所选择的资源
11、Bundle制作完成,使用就和其他的资源文件一直即可
12、 代码使用
自己写了一个扩展,获取bundle
extension Bundle{
func getBundle(swiftClass: Swift.AnyClass) -> Bundle{
guard let podBundle = Bundle(for: swiftClass.self).path(forResource: "YXBundleDemo", ofType: "bundle") else {
return Bundle(for: swiftClass.self)
}
return Bundle(path: podBundle)!
}
}
///项目中使用
stateButton.setImage(UIImage(named: "图片名称", in: Bundle().getBundle(swiftClass: 当前类.self), compatibleWith: nil), for: .normal)