制作.a静态库

2021-09-07  本文已影响0人  清宵寒夜

1、新增项目,选择StaticLibrary


image.png

2、修改SDK适配的平台和最低支持的版本
target -> Build Setting -> Deployment,按照自己需要选择版本和平台即可


image.png
3、编写SDK代码
这里照Application工程来新建.h和.m文件等来实现自己想要的功能。

4、设置SDK需要保留给外部的头文件
先在target -> Build Phases添加Headers


image.png
有2种方式
a、选中.h文件,在右侧的Target Membership选择pulic则为暴露的头文件
image.png
b、target -> Build Phases->Headers把需要暴露的头文件从project长按拖动到Public下面即可
image.png
5、导出.a文件

a、导出真机架构的.a文件

编译设备选择真机/或者无设备,xcode左上角菜单栏Product->build for 导出对应模式下的.a文件。
也可以选择快捷键。

image

b、导出模拟器架构的.a文件

编译器选择任一模拟器然后重复上面build for步骤即可

6、合并成一个真机和模拟器都可以用的.a文件

如果不需要支持真机可以跳过合并直接提供真机架构的framework文件给外部使用即可。
工程左边文件目录选择Products文件夹下framework文件,右键选择show in floder找到iPhoneos文件夹下的真机架构文件和iphonesimulator文件夹下的模拟器架构文件

6.1、打开终端执行

lipo -create -output outputpath/name.a xxxx/Debug-iphoneos/xx.a xxxx/Debug-iphonesimulator/xx.a

outputpath --最终.a文件存放的路径
xxxx/Debug-iphoneos/xx.a:debug模式下生成的真机架构.a文件路径
xxxx/Debug-iphonesimulator/xx.a:debug模式下生成模拟器架构.a文件路径
也可以lipo -create xxxx/Debug-iphoneos/xx.a xxxx/Debug-iphonesimulator/xx.a -output outputpath/xx.a

此处合成的.a文件为debug模式下的文件,一般提供到外部使用都是release模式下的文件,把需要合并的2个文件路径换成release模式下生成的.a文件即可。
lipo -create xxxx/Release-iphoneos/xx.a xxxx/Release-iphonesimulator/xx.a -output outputpath/name.a

6.2、将合并后的或者release模式下的.a文件提供给外部工程使用即可。

至此大功告成。

上一篇 下一篇

猜你喜欢

热点阅读