IOS静态库(SDK)制作及使用方法


前言:

         做ios开发经常会碰到各类的SDK,其中我们经常看到类似***.a的文件。这个就是封装好的库文件,那么它是如何制作出来的?又发何使用呢?

 

知识点:

一、库

所谓库,就是封装好的程序代码。其中又分为开源库和闭源库。

开源库就是公开源代码,能看到代码的具体细节,可修改。例如:SDWebimage、AFNetworking等。闭源库就是不公开源代码,无法看到源代码,不可修改,只能使用。闭源库又分:静态库、动态库

(1)     静态库

.a和.framework形式存在。

(2)     动态库

.dylib和.framework形式存在。

使用区分:

静态库在链接时就会被完整地复制到可执行文件,多次使用就多次复制,造成代码冗余 
动态库在链接时不会进行复制,而是由程序运行时系统动态加载到内存,供程序调用,只加载一次,节省内存 
注意:项目中若有自制动态库,不能被上传到AppStore

 

制作过程:

1:建立项目,如下图所示


Xcode建立工程,选择IOS下的Famework&Library其中选择Cocoa Touch Static Library

2:项目结构如下图所示


这时我们好像已经看到了一个libTestLib.a的文件,为什么是红色的呢?这就做好了吗?当然没有制作好了,红色是因为没有进行编译。

3:代码功能实现

添加相应的功能代码;


这里注意.h文件中也要写好方法定义。如下图所示


4:工程配置


确保所需代码添加到编译列表中。


5:编译工程

         确保工程,在release模式。


选择Edit Scheme进行设置。

真机编译设置,如下图所示


模拟器编译设置,如下图所示


编译(Command+B)或如下图所示


6:文件合并

         经过上面的编译工作,我们发现libtestLib.a文件变成了黑色。文件夹中查看,如下图:


Release-iphoneos 文件夹里面的东西是用在真机上的

Release-iphonesimulator 文件夹里面的东西是用在模拟器上的

将两个文件夹复制到桌面新建文件夹tt中,打开终端执行合并操作



合并代码:

Lipo –create/Users/drb/Desktop/tt/Release-iphoneos/libTestLib.a /Users/drb/Desktop/tt/Release-iphonesimulator/libTestLib.a  -output /Users/drb/Desktop/tt/testlib.a

查看信息代码:

lipo -info/Users/drb/Desktop/tt/testlib.a

 

格式(注意空格):

lipo-create 真机下的.a路径(空格)模拟器下的.a路径(空格) -output (空格)合成后的路径及名称 

查看信息时,如下图所示内容很重要


到此静态库制作完成。

 

使用过程

1:如下图所示,将制作好的testlib.a文件和TestLib.h文件添加到工程中


添加调用代码:

         //静态库调用测试

    TestLib * testlib = [[TestLiballoc]init];

[testlib HelloLib];

运行程序,我们会看到调用成功了! 输出信息:”hellolib test!”

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值