您的位置:首页 > 其它

第三方静态库制作

2015-09-18 21:38 246 查看
       在iOS的开发过程中,我们常常用到第三方的库。像QQ、百度地图、广告等。下面将详细介绍如何生成静态库。

一、静态库的优点:

1.让自己的源码不被直接暴漏。

2.需要使用时,仅仅拷贝相应的.h文件和.a文件就好,不用在将源码一一拷贝。方便。

3.显得也比源码拷贝高端、大气一些。

二、建立静态库项目



生成如下的项目,即可在.h和.m文件编写相关代码。
 



三、生成静态库

生成第三方静态库时,也有两种模式可选,Debug和Release模式,默认是Debug模式,为了考虑上架苹果AppStore,这里我们修改为Release模式,修改方法如下所示:





        设置完毕后,修改运行设备,分别在测试机和真机运行一次。会生成.a文件,.a文件在项目的缓存中,目录如下。





此时,则生成了可以在真机和测试机上运行的第三方库。

四、合并静态库

        将生成的第三方库,引入当前项目时,发现真机的第三方库只能在第三方库运行,测试机的第三方库只能在测试机上运行,为便于开发,需要合成能在所有平台上运行的第三方库。
        打开终端运行下列操作:

// 进入文件夹

yangjundeMini:Products yangjun$ cd /Users/yangjun/Desktop/Products/

// 查看编译的可执行的CPU环境

yangjundeMini:Products yangjun$ lipo -info Release-iphoneos/libYJURLSessionTask.a 

Architectures in the fat file: Release-iphoneos/libYJURLSessionTask.a are: armv7 arm64 

yangjundeMini:Products yangjun$ lipo -info Release-iphonesimulator/libYJURLSessionTask.a 

Architectures in the fat file: Release-iphonesimulator/libYJURLSessionTask.a are: i386 x86_64 

// 合并 

yangjundeMini:Products yangjun$ lipo
-create Release-iphoneos/libYJURLSessionTask.a Release-iphonesimulator/libYJURLSessionTask.a -output libYJURLSessionTask.a

// 查看合并后的静态库支持的CPU环境 

yangjundeMini:Products yangjun$ lipo -info libYJURLSessionTask.a 

Architectures in the fat file: libYJURLSessionTask.a are: armv7 i386 x86_64 arm64 

        这样,就可以合并一个通用版本的静态库。唯一不爽的,就是体积要大一些。
        通用版本大小>=模拟器版本大小+真机版本大小。

        并且新生成的静态库支持armv7、i386、x86_64和arm64至于为什么不用支持armv7s,因为:支持armv7s运行的设备只有iPhone
5(你懂的)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: