制作frameWork,看我就够啦

因公司业务就是制作SDK,本猿也不得不来封装下Framework了,话不多说看步骤



1.新建工程文件工程配置


framewrok的创建

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支持的版本


这里设置啦,Framew也设置了

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


含有Category

你可能感兴趣的:(制作frameWork,看我就够啦)