制作静态库文件(.a文件)

制作静态库文件(.a文件)

1、创建静态库工程:

       在Xcode中new一个新的project,选择IOS下面的Framework&Library,下面有一个Cocoa Touch Static Library。直接next去建立一个静态库工程。(如下图)

 

2、编写工程:

       现在就可以编写静态库要实现的功能(新建文件,编写代码)

3、配置静态库工程对应的Copy Files和Copy Headers:

       在工程设置的Build Phases中设置(如下图),选择右下角的Add Build Phases,添加Copy Files和Copy Headers。

其中Copy Files是将其他工程调用静态库时候需要的头文件拷贝到Products Directory下的include文件夹下;Copy Headers用来设置静态库工程中文件的Target Membership,将需要公开的头文件拖到public下面。

 

4、添加资源文件(包括xib和图片等资源):

    网上很多教程都是到上一步就可以编译了,但是仅限于编写一些方法(代码),无法添加资源,这里介绍如何添加资源文件。

    采用的方法是,我们将所有的资源文件添加到一个bundle里面,然后把它和静态库一起include到其他工程中使用。下面是创建bundle的步骤:

    a、添加bundle:在工程设置的Build Phases中设置,选择右下角的Add Target新建一个target,这里我们选择OS X下面的Framework&Library中的Bundle(如下图)。

 

    b、我们可以看出这个目标模板是用于mac下面的,所以我们需要改下配置,让它可以在ios下面使用,在Build Setting下面的Base SDK值改为ios(最好改给Latest..那项)(如下图)。

 

    c、现在我们可以将资源文件添加到刚才创建的bundle中了:

    选择刚才创建的bundle的工程设置,在Build Phases中,将需要添加的资源添加到Link Binary With Libraries中(如下图)

   

5、编译:

    编译器准备:我们编译生成的静态库文件分为release和debug版本,平时调试可以用debug版本,发布时候一定要用release版本(在Edit Schemes中修改,如下图);

 

     

      

    现在就可以编译了,编译后的静态库文件、头文件还有bundle文件全都在Products  Directory文件夹下。

另外静态库还区分真机版和模拟器版本(编译的时候选择的是设备编译的就是真机版,选择的如果是模拟器编译出来的就是模拟器版本,我们可以在命令行用下面的命令查看静态库的信息:

    lipo –info *.a

    i386是模拟器版本,armv7是真机版本,下面的命令可以将两个版本的库文件合成一个:

    lipo –create  path1/lib1.a   path2/lib2.a   -output path3/newlib.a

6、建立一个调用静态库的应用:

7、链接静态库:把第5步编译生成的后的静态库文件(.a文件)、头文件还有bundle文件添加到新建的应用中,将.a库添加到工程设置Build Phases的Link Binary With Library中,将bundle添加到工程设置Build Phases的Copy Bundle Resources中。

至此,我们已经将静态库添加到应用中了,在需要用库中方法的地方引入头文件,然后就可以调用里面的方法了。

原文地址:https://www.cnblogs.com/XCoderLiu/p/3868656.html