目前越来越多的静态库采用的是FrameWork形式
- 因为他就是一个包,使用分厂方便,并且关键看起来高大上
- 在开始之前说一下注意点
- 默认创建的FrameWork静态库是动态的,在使用的时候程序会报错,得对项目进行设置
Bulid Setting ----Mach-----static
- 默认创建的FrameWork静态库是动态的,在使用的时候程序会报错,得对项目进行设置
- 动态FrameWork库苹果是不允许上传AppStore的
- 跟.a的静态库区分开来,不要生成的包当成FrameWork静态库文件
如果动态库中有分类默认是不会参与编译需要配置 运行会发送找不到方法的经典错误
项目-> target->Bulid Settings-->Other Linker Flags ->-ObjC
代表项目所有的objc文件都会参加编译
- 下面开始制作
- 新建一个FrameWork静态库项目
- 创建好的项目的结构
-
我们创建一个工具类MatchTool 并添加方法
下面这一步非常重要 暴露头文件
- 主头文件里面添加头文件
注意:这里#import头文件的方式 因为在一个包中所以直接使用#import "MatchTool"
而不是<>
我们可以模仿官方的写法
- 接下来我们先看一下一下使用默认生成的动态库的结果是什么样
- 直接编译
- 我们新建一个Test工程进行测试
- 上面导入惊天库使用会直接报错,原因是默认生成的是动态的FrameWork库
- 有解决的办法 就是苹果不允许程序上传AppStore
- 下面解决办法
- 那么我们一般生成的是静态的Framework库,那么怎么设置呢
- 设置方法
然后我们在编译生成的Framework库就是静态库了
我们将我们生成的模拟器跟真机的库合并
- 这样就生成了一个真机跟模拟器都可以使用的FrameWork静态库了