之前,iOS是只支持创建静态库文件的,不支持使用framework文件的,如果工程中使用了framework文件,会上线被拒。但是呢,在iOS 8的时候就已经开放iOS的静态库文件支持了。之前自己尝试跟着几篇博客做过framework文件,有不少的错误。这次又要再做一个framework,思索再三,还是自己写篇博客替后人扫清点石子吧。本篇博客以XCode8.1—beta为例子,演示如何创建一个framework。
步骤1 打开XCode,创建工程
2 创建一个功能类
利用功能类模拟framework中的文件的功能。这里写一个简单的获取frame信息的宏定义。
CQDefine.h
这里如果是想创建功能类,那么就按照正常的套路创建.h和.m文件就可以了。
3 设置Build Setting
文件创建完了需要在工程的配置文件中更改几个参数。直接看图吧.
在Architectures下增加armv7s,并选中。将Build Active Architecture Only 设置为NO。
4 设置对外公开的Header
将对外公开的头文件放到public里,需要隐藏的文件放在private下。 公开的头文件可以被引用,隐藏的头文件则无法引用。
为了方便,通常在CQSDK.h中将所有的公开头文件都引入进去,这就和Fundation框架的做法一样,引入一个就把整个SDK都引入进去了。
5 打包SDK
打包SDK有两种方式,第一种是将真机测试包和模拟器测试包合并。这种方式看官可以自行百度,鄙人就不进行多余描述了,以为我推荐第二种方式。
选中TARGETS下的工程,点击上方的Editor,选择Add Target创建一个Aggregate.
选择Other下的Aggregate,点击Next创建。
选中刚刚创建的Aggregate,我这里起的名字是FrameAutoRun,然后选中右侧的Build Phases,点击左下方加号,选择New Run Script Phase.
把下面的这段脚本复制进去。
编译运行刚刚创建的FrameAutoRun标签,设备选择Generic iOS Device。
其实上面就是用指令的方式将第一种方法运行起来。一次写完再也不用写指令了。