美文网首页
iOS 封装SDK(.a静态库的封装)

iOS 封装SDK(.a静态库的封装)

作者: 中秋梧桐语 | 来源:发表于2017-02-16 11:35 被阅读0次

最近突然相对自己封装的一些UI工具类进行进一步的封装,突然想到了之前做过的静态库封装,今天重新试了下,操作上不是很熟悉,以此为契机,将技术中的点点滴滴记于简书。

一、 创建一个静态库工程。

1. 打开Xcode,点击File\New\Project,选择iOS\Framework and Library\Cocoa Touch Static Library新建一个静态库工程.

将工程命名为APTestSDK。

二、工程配置

Build ActiveArchitecture Only设置成YES;

Architectures按Xcode默认配置,arm64向前兼容;

制作.a静态库,需要要保证兼容性,包括不同iOS设备以及模拟器运行不出错,所以尽量做到最大的兼容性。

ValidArchitectures设置为:armv7|armv7s|arm64|i386|x86_64

三、一个静态库工程由头文件和实现文件组成,编辑之后就组成了库本身。

创建静态库库时,一般是不需要.m实现文件的,选中APTestSDK.m右击选中delete,将其删除。

四、将自己封装好的自定义控件拖入工程。

1. 将功能相关的所有头文件,导入到SDK的头文件中。

2. 选中Generic iOS Device,Comand+B编译工程。(选中Generic iOS Device编译的是真机,选中模拟器编译的就是对应的模拟器静态库。) 若编译成功红色的libAPTestSDK就会变成灰色。

3. 选中libAPTestSDK.a右击Show in Finder。

在下图中你可以看到真机和模拟器对应的静态库和相关文件。

然后我拿到Debug_iphonessimulator里的.a文件,还有和他相关的所有.h文件存放在一个文件夹中。此处我在桌面创建了一个名为MySDK的文件夹。

4. 现在我们那这个文件夹去玩玩了,

你运行之后发现在模拟器上是没啥问题的,当你在真机上运行时就会报错。

哈哈  很明显该库不支持arm64位架构,也就是不支持真机。回想一下就知道我们创建静态库文件时,只添加了模拟器中的静态库,所以接下来就是合并模拟器和真机的静态库。

五、合并静态库。

打开终端,输入一下指令即可。

lipo -create  模拟器中.a的路径 真机中.a的路径 -output  /Users/mac/Desktop/libXXX.a

-output后面有一个空格, 其后跟的路径就是你想要存放合并静态库的路径。

六、   把所有的需要封装的.h和最后生成的.a放在一个文件夹里,然后引入到需要的工程即可。

相关文章

网友评论

      本文标题:iOS 封装SDK(.a静态库的封装)

      本文链接:https://www.haomeiwen.com/subject/mjicwttx.html