iOS打包Bundle文件

2,260 阅读1分钟

最近项目在组件化,所以需要各种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 CopyRelease模式设置为 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)