iOS静态库.a文件的创建与使用(看了不会怪我)(一)

干了这么长时间很少贡献东西今天贡献一篇文章,今天写一章关于静态库.a文件的创建.

好了废话不多说,静态库和动态库的区别自己查,我只负责说一下如何创建一个静态库

1、创建一个新的Xcode工程StaticProject

iOS静态库.a文件的创建与使用(看了不会怪我)(一)_第1张图片
iOS静态库.a文件的创建与使用(看了不会怪我)(一)_第2张图片


iOS静态库.a文件的创建与使用(看了不会怪我)(一)_第3张图片

2.在里面创建一个类用于测试使用

iOS静态库.a文件的创建与使用(看了不会怪我)(一)_第4张图片

3.添加公开的头文件,即你想让别人看到的头文件 你都需要在copyfile中添加.h

iOS静态库.a文件的创建与使用(看了不会怪我)(一)_第5张图片



iOS静态库.a文件的创建与使用(看了不会怪我)(一)_第6张图片


iOS静态库.a文件的创建与使用(看了不会怪我)(一)_第7张图片
这个之后可以看到有两个.h文件


4、修改配置

我们需要把Build Active Architecture Only修改为NO,否则生成的静态库就只支持当前选择设备的架构。

iOS静态库.a文件的创建与使用(看了不会怪我)(一)_第8张图片

5、然后编译

我们分别选择Generic iOS Device和任意一个模拟器各编译(command+b)一次,编译完后,我们会看到工程中Products文件夹下的libTest.a由红色变成了黑色,然后show in finder,看看生成的文件:

iOS静态库.a文件的创建与使用(看了不会怪我)(一)_第9张图片
iOS静态库.a文件的创建与使用(看了不会怪我)(一)_第10张图片

我们可以看到以下两个文件一个是刚才跑模拟器的一个刚才跑Generic iOS Device的


iOS静态库.a文件的创建与使用(看了不会怪我)(一)_第11张图片

接下来看一下静态库支持的框架

(1)打开终端切换到当前的目录(cd 后面直接将文件拖进来就可以了然后回车)

iOS静态库.a文件的创建与使用(看了不会怪我)(一)_第12张图片

然后输入:lipo -info+静态库名称

iOS静态库.a文件的创建与使用(看了不会怪我)(一)_第13张图片

我们看到,Debug-iphoneos里面的静态库支持的架构有armv7和arm64所以它只能用于真机,在模拟器上会报错。Debug-iphonesimulator里面的静态库支持的架构有i386和x86_64,所以它只能用于模拟器,在真机上会报错。

如果想要让模拟器和真机通用一个静态库,我们可以使用终端命令来实现。命令格式:lipo -create 第一个.a文件的绝对路径 第二个.a文件的绝对路径 -output 最终的.a文件路径:

于是就出来了一个myLib 这个myLib是真机模拟器通用的


iOS静态库.a文件的创建与使用(看了不会怪我)(一)_第14张图片


接下来创建一个文件夹将最终生成的.a文件和.h文件放到一起我以后我们就可以使用了这里面的.h是从上面Debug-iphoneos文件夹下考出来的别不知道从哪来的好了这就可以了你已经创建了一个.a的静态库

iOS静态库.a文件的创建与使用(看了不会怪我)(一)_第15张图片

6.接下来就是使用了

使用就比较简单了创建一个新的工程将MyLib导入工程导入头文件就可以使用了


iOS静态库.a文件的创建与使用(看了不会怪我)(一)_第16张图片

好了完美运行,下次再写就写静态库.frameWork的创建以及多工程联编这个架构模式欢迎收藏点赞.有问题可以扫头像加我的微信.

你可能感兴趣的:(iOS静态库.a文件的创建与使用(看了不会怪我)(一))