生成资源bundle的流程
组件化之后,每个模块作为一个pod被引用,那么资源放在一个bundle里面会比较方便。资源包括图片、视频、xib编译之后的nib、storyboard、国际化字符串等文件。
xib和storyboard是需要编译的,所以我们需要建立一个可编译的bundle。理论上来说就算当时没有xib和storyboard,为了以后可能会引入这些文件,我们也应该用编译型bundle,有备无患。
1. 添加resource target
进入target list 列表页面,点击加号
选择macOS,搜索bundle,选中bundle,点击下一步
输入target名称,推荐使用格式 XYVivaXXXResource,XXX为模块名称,比如XYVivaTemplateCenter模块的bundle名称为:XYVivaTemplateCenterResource.bundle
然后在项目结构那边可以看到多了一个文件夹
所有的资源文件,全部拖入这个目录,并选择此target。
2. 设置bundle target
打开info.plist,删除Executable file这一行
进入target设置页面,设置architectures为iOS
接着设置combine_hidpi_images 为 NO
3. 添加脚本文件
先列出脚本文件代码:
1 |
|
首先说明一下脚本文件的作用是什么,很简单,就是使用xcodebuild命令编译出一个bundle,然后copy到项目根目录,还有一步是最后两行代码,它删除了bundle内部的代码签名目录_CodeSignature和配置文件info.plist,这两个东西我们是不需要的。
接着打开项目target,打开build phases,添加一段脚本
然后把刚才那段代码copy进去,更改FMK_NAME为你真实的resource target名称
最后把Run Script移动到Copy Bundle Resources前面
3. 使用这个bundle
cmd+b编译一下先
编译成功之后,你的项目根目录会多出来一个你期望的bundle文件,请添加到项目中来
到现在已经全部完成了,你可以试试编译xib,storyboard,图片这几个资源试试看。
看下面的图片,我已经成功编译了这几个资源