一、打包代码
1、新建framework工程,如图:
2、选中 Target ,选择 Build Settings ,在 Architectures 下增加 armv7s
3、Build Active Architecture Only修改为NO,否则生成的静态库就只支持当前选择设备的架构
4、在搜索栏搜索 Mach-O Type ,将 Mach-O Type修改为 Static Library(静态库)类型
5、将Dead Code Stripping设置为No
6、选中 Target ,选择 Build Phases - Headers ,可以看出有三个选项,分别是 Public 、Private 、Project ,把需要公开给别人的 .h 文件拖到 Public 中,把不想公开的,即为隐藏的 .h 文件拖到 Project 中
7、完成上述步骤之后,在项目里默认生成的.h文件中,把步骤(5)中public下的.h文件都用 #import 引入,不然编译后生成的.framework在引用的时候会有警告
8、按照下图将编译的 Device 选择为真机 ,然后按下 Command + B 开始编译,编译成功后在 Products 文件夹的 .framework 文件,右键点击 Show in Finder。将Device选择为模拟器,重复第一次的步骤,这样编译出来的静态库可以真机和模拟器都支持
9、合并步骤(7)中真机和模拟器模式下生成的两个 framework 文件:打开终端,输入命令:lipo -create 真机framework路径 模拟器framework路径 -output 合并后的文件路径
10、将合并后的framework文件导入到项目中,在需要调用的地方 #import framework的.h文件即可
二、打包图片资源
打包成framework的代码引用的图片资源需要打包成bundle的形式才能引入
1、新建项目,选择macOS ,选择Bundle
2、修改BaseSdk为iOS,因为Bundle默认是macOS系统的,所以我们要修改他的属性
3、修改Build Setting中COMBINE_HIDPI_IMAGES属性为NO。否则Bundle图片格式就会为tiff格式
4、设置Skip Install的值为YES,同时删除Installation Directory的键值;作为资源包只需要编译就好,不需要安装相关配置
5、把图片拉进Bundle中,选择真机模式,command + B,在Products文件夹下的.bundle右键选择Show in Finder,可以看到我们生成的Bundle文件
6、把Bundle文件导入到我们的framework项目中,具体用法
7、 重新打包成framework,并和图片Bundle一起导入到工程中;注意:如果demo中不导入Bundle,图片是不会显示出来的