因公司业务就是制作SDK,本猿也不得不来封装下Framework了,话不多说看步骤
1.新建工程文件工程配置
2.FrameWork的5个xocde设置
2.1 设置framework-build Setting -Architectures添加armv7s
2.2 设置framework-build ActiveArchitectures only设置为NO
2.3 设置Build Setteting - Linking - Mach -O Type 设置为静态库static Lobrary
2.4 如果你项目中含有类别,你需要添加Build Setteting - Linking - Other Linker Flags 添加-Objc
2.5 设置您的工程文件最低支持的版本也就是FrameWork支持的版本
3.FrameWork项目文件的导入
1.需要打包的工程文件的拖入方式,(第三方不含 静态库的直接当成项目文件拖入记得改类名如AFNetworking,否者他人使用你的Framework的时候再工程中同样导入AFNetworking会报重复文件错误)
2.含有静态库的导入,我们可以把静态库当做依赖库,导入方式不勾选,但是需要手动拖入Xcode中Link FrameWork(和系统库一致)
3.在Link FrameWork拖入你工程中需要的系统库
4.设置Headers(第三方不含静态库的如AF改完类名也要拖入,含静态库的第三方不作考虑当做依赖库),其中Public是暴露的头文件,Project是工程文件需要导入完成
5.在创建的工程文件自带.h中添加需要暴露的头文件
6.添加资源文件.bundle
4.制作包含模拟器和真机的Framework
1.分别在真机模拟器中运行(改为relase模式)
2.在目录中点击frameWork并进入找到模拟器和真机
3.合成
(1).查看架构信息
打开终端使用命令行 lipo -info 查看framework架构信息
真机版本
模拟器版本
(2).合并真机模拟器版本
因为以上获取的framework只能在对应的版本上运行(即真机只能在设备上运行模拟器版本只能在模拟器上面运行使用)所以需要合并为通用版本
命令行语句:sudo lipo -create (此处请填写真机AppVest文件路径) (此处填写模拟器AppVest文件路径) -output 自定义合成文件存储路径(合成文件的名字AppVest)
根据以上命令就在相应位置生成了新的AppVest文件,然后把这个新生成的文件拷贝到相应的framework中进行AppVest文件替换
(3).查看替换后的framework支持全部真机模拟器架构
此时都支持说明合成完毕可以使用。
5.使用Framework
1.导入我们的Framework和.bound,依赖的第三方静态库,系统库
2.如果framework中使用了类别
需要添加-all_load