ios 生成.a文件

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

生产.a库

1.首先创建一个新的工程,选择ios --》Framework&Library --》 Cocoa Touch Static Library 工程名例如 DemoA
选择如图
项目命名

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

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

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

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

在这里插入图片描述

如何使用静态库呢
新建一个工程,把我们的静态库拖进去,导入头文件。
在这里插入图片描述
在这里插入图片描述
运行效果
在这里插入图片描述
注意 如果静态库中有Category类,就要在使用静态库项目的配置中添加-ObjC或者-all_load

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

猜你喜欢

转载自blog.csdn.net/u013983033/article/details/83030389