最近一个人在做一个即时通讯SDK的项目,所以就用到了静态库的打包,开始遇到一些困难和莫名的bug,不过现在已经基本完成。现在,浅谈一下个人经验。首先,概述一些最基本的名词概念,也是为了大家能更好的理解我们究竟在做什么 为什么要这样做 有了这些基本的逻辑思维 那么其他什么就都不是事哈 (不要拦我 我要开始发功了)哈哈哈
一、概念篇
动态库,不能被上传到AppStore(逼格太高 大苹果可是不允许的哈 哈哈)
总结:个人觉得 .a静态库的 本身就是一个对代码或者一个功能的封装,只不过是不开源的。
二、制作流程(如下均是Xcode7展示的操作)
新建一个纯净的项目-> 选择 “Cocoa Touch Static Library”
输入想要打包的静态库的名称
把库需要包含的源代码拖入此项目中
此处有一些注意点见下图
右击“ShowInFinder”,查看制作好的.a文件
首先文件切换到 Products文件夹
然后输入
lipo -create Debug-iphoneos/libXXX.a Debug-iphonesimulator/libXXX.a -output libXXX.a
使用.a 静态库
现在.a静态库和头文件都有了就可以把它们拖到项目中使用了
使用时直接#import"xxx.h"就可以直接导入调用使用了
至此,静态库算是制作完了,但是有以下几点需要说明
倘若自己所需要打包的静态库代码中用到了别人的三方框架比如“AFNetworking”等,此时只需要把用到的三方库文件的头文件在选择暴露头文件时都给暴露出去,然后导入的项目中如果也用到了相同的三方框架,此时此项目就不需要拖入这个三方库代码直接,需要使用时直接把你所提供的.a静态库和头文件导入 然后#import你所提供的相关头文件即可使用(注意:一定是以你的打包的为准)比如 直接#import"xxx.h"
若是自己的静态库原代码中使用了分类 比如NSString+xxxx,此时一定需要更改下项目的环境配置
添加一个“-ObjC”(注意"O""C"是大写的)
总结:个人的第一个博客,各种小紧张哈,若有问题可以直接在博客回复。个人原创,转载请说明出处。