ios 生成.a文件

现在再有一个功能,不知道是集成方是想用.a 还是framework 就将两种都给实现了 ,这篇介绍.a文件的生产, framework生产

生产.a库

1.首先创建一个新的工程,选择ios --》Framework&Library --》 Cocoa Touch Static Library 工程名例如 DemoA
ios 生成.a文件_第1张图片
ios 生成.a文件_第2张图片

2 之后我们会看到自动生成.h和.m文件 可以在.m文件中写你要的代码 或者新建.h和.m文件,将自动生成的删除了
ios 生成.a文件_第3张图片
3 咱们就再自动生成的文件中进行操作了
.h 文件ios 生成.a文件_第4张图片
.m 文件
ios 生成.a文件_第5张图片
4.选择需要公开的头文件

ios 生成.a文件_第6张图片
5 静态库需要支持的版本
ios 生成.a文件_第7张图片
6 修改配置 Active Architecture Only修改为NO,否则生成的静态库就只支持当前选择设备的架构。
ios 生成.a文件_第8张图片
7 接下来就是编译生成.a文件了
1)真机编译的.a 文件 选中真机编译,对应生产一个真机的.a 文件
ios 生成.a文件_第9张图片
选择Generic iOS Device,command+b完成后,在工程的Products文件夹下的.a文件从红色编程了黑色。编译成功,然后Show in Finder。
ios 生成.a文件_第10张图片
下图是真机.a
在这里插入图片描述

2)模拟器编译的.a 文件 选中模拟器编译,对应生产一个模拟器的.a 文件
ios 生成.a文件_第11张图片
command+b完成后,在工程的Products文件夹下的.a文件从红色编程了黑色。编译成功,然后Show in Finder。对应的模拟器的.a文件
ios 生成.a文件_第12张图片
ios 生成.a文件_第13张图片
8 用命令lipo -info 静态库名字来查看,是支持真机还是模拟器
ios 生成.a文件_第14张图片
如图 Debug-iphonesimulator里面支持i386、x86_64,属于模拟器,用到真机会报错

在这里插入图片描述
Debug-iphoneos里面支持armv7、arm64,属于真机,用到模拟器就会报错
9 合并静态库-让模拟器和真机使用一个静态库
命令如下:
lipo -create 第一个.a文件的绝对路径 第二个.a文件的绝对路径 -output 最终的.a文件路径
在这里插入图片描述
这个生成的.a文件,就是支持真机和模拟器的静态库了。创建一个文件夹,把.a和头文件拖进去,这个文件夹就是我们所需要的。一般上线的时候只导入真机的,这样工程的体积也会小一些。

ios 生成.a文件_第15张图片

如何使用静态库呢
新建一个工程,把我们的静态库拖进去,导入头文件。
ios 生成.a文件_第16张图片
ios 生成.a文件_第17张图片
运行效果
ios 生成.a文件_第18张图片
注意 如果静态库中有Category类,就要在使用静态库项目的配置中添加-ObjC或者-all_load

如果有错误的地方欢迎指出,一起学习,一起进步。

你可能感兴趣的:(ios随笔)