iOS打包.a静态库文件(入门)

一  前言

近日没事儿干,就在看了下关于静态库打包的相关资料(仅供入门,大神绕道),所谓库其实就是代码块的集合,可简单的分为开源库,和闭源库(顾名思义就是开源和不开源),今天学的.a属于闭源库,因为.a实际上是一个二进制集合,库还可以分为静态库和动态库,.a,framework属于静态库(自己创建的),以".dylib"或者“.framework”为文件后缀名结尾为动态库(比如系统的)额.....好像跑题了,开始我们正式的入门吧!GO~

二   入门


iOS打包.a静态库文件(入门)_第1张图片
本文使用Xcode8.3.3
iOS打包.a静态库文件(入门)_第2张图片
选择建立静态库


iOS打包.a静态库文件(入门)_第3张图片
创建文件

创建一个test_HelloWord(这里继承的是NSObject),没有编译的.a是红色的(无效,不存在的文件)

iOS打包.a静态库文件(入门)_第4张图片
方法声明
iOS打包.a静态库文件(入门)_第5张图片
方法实现

三 注意点

          下面重点来了,敲黑板!!!!

iOS打包.a静态库文件(入门)_第6张图片
architecture

architecture 字面意思 只编译活跃的架构  NO就是所有,YES是只有当前活跃的 ,这里选择所有(debug,release)


iOS打包.a静态库文件(入门)_第7张图片
选择编译

然后编译就可以了,注意不是运行,分别选择真机和模拟器(如果你不选模拟器,当然也可以)

iOS打包.a静态库文件(入门)_第8张图片
拿到编译后的静态库


上面是真机,下面是模拟器

既然拿到了库是不是就成功了呢?如果只支持一种到这里是结束了,可以下课了,但是如果想同时支持真机和模拟器需要将两个库合并

在终端使用 lipo 命令

lipo -info  库的路径  -----------查看库支持什么架构

lipo -create 要合并的库1  要合并的库2 -output合并后的静态库

例子:lipo -create lipo -create /Users/apple/libtest_HelloWord.a  /Users/apple//libtest_HelloWord.a -output helloLib.a (合并文件helloLib.a)

这样合并出来的.a静态库就会支持所有的编译环境了。

之后再加上所有的.h文件就可以使用了。

四  测试

iOS打包.a静态库文件(入门)_第9张图片
测试

包含头文件,并调用helloWord方法。

五  总结

很简单的一个静态库。编程是一条漫长的道路,前进的路上有你会更佳精彩,谢谢大家!

你可能感兴趣的:(iOS打包.a静态库文件(入门))