制作静态库文件(.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中。

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

制作静态库文件(.a文件)的更多相关文章

  1. Ubuntu16.04下编译OpenCV2.4.13静态库(.a文件)

    Ubuntu16.04下编译OpenCV2.4.13静态库(.a文件) https://blog.csdn.net/woainishifu/article/details/79712110 我们在做项 ...

  2. 静态库是.o文件的集合与弱符号

    静态库是.o文件的集合. 静态库与弱符号的概念相关联. 在生成库文件时,不做强符号检查.

  3. 判断IOS静态库(.a文件)是否支持模拟器和真机运行

    判断IOS静态库(.a文件)是否支持模拟器和真机运行 在mac终端下,进入到.a文件目录下,然后输入: lipo -info libMyAlertView.a Architectures in the ...

  4. Xcode8.3.2制作静态库

    1. 打开Xcode8.3.2: 2. 如下操作 3. 创建Bundle文件 比如xib或者图片存放 File-new-Target  选择macOS 搜索Bundle文件 4.创建完成如下所示 5. ...

  5. Linux库函数制作(静态库、动态库)

    Linux库函数制作(静态库.动态库) 静态库与动态库 链接方式 链接分为两种:静态链接.动态链接 静态链接: 由链接器在链接时将库的内容加入到可执行程序中 静态链接的特点是: 优点: 对运行环境的依 ...

  6. Linux下制作静态库 & 动态库

    静态库 1.将.c生成.o文件 gcc-cadd.c-o add.o 2.使用ar工具制作静态库 ar rcs lib库名.a add.o sub.o div.o 3.编译静态库到可执行文件中 gcc ...

  7. xcode 制作静态库.a文件 详解

    http://blog.csdn.net/kepoon/article/details/21516977 最近在做Apple的IOS开发,有开发静态库的需求,本身IOS的开发,只允许静态库或者Fram ...

  8. iOS开发--CornerStone上传静态库(.a文件)

    首先打开软件左上角 CornerStone-Preferences-SubVersion 第一个地方把对号去掉,第二个地方把.a那个删除,然后save. 然后把你的.a文件放到本地的相应文件夹下, 但 ...

  9. iOS静态库(.a文件)

    1.找到静态库工程

随机推荐

  1. ellang 中进程异步通信中的信箱与保序

    erlang 进程通讯中 执行到 receive 语句时 如果信箱没有消息可以匹配时会暂停等待消息. go() -> register(echo, spawn(test_pid,loop,[]) ...

  2. php安装过程中遇到的需要安装的问题

    http://www.cnblogs.com/kristain/articles/3809243.html     借鉴php安装错误 2013-01-04 19:16:49 分类: 系统运维 环境: ...

  3. Linux Shell脚本之自动修改IP

    作为一名Linux SA,日常运维中很多地方都会用到脚本,而服务器的ip一般采用静态ip或者MAC绑定,当然后者比较操作起来相对繁琐,而前者我们可以设置主机名.ip信息.网关等配置.修改成特定的主机名 ...

  4. variable-precision SWAR算法:计算Hamming Weight

    variable-precision SWAR算法:计算Hamming Weight 转自我的Github 最近看书看到了一个计算Hamming Weight的算法,觉得挺巧妙的,纪录一下. Hamm ...

  5. Laravel 5.1 事件、事件监听的简单应用

    ​ 有时候当我们单纯的看 Laravel 手册的时候会有一些疑惑,比如说系统服务下的授权和事件,这些功能服务的应用场景是什么,其实如果没有经历过一定的开发经验有这些疑惑是很正常的事情,但是当我们在工作 ...

  6. 一个小程序[Socrates]中学到的Perl点滴

    1. 抓取网页源文件,只要三行代码 use LWP::Simple; $url='http://music.baidu.com/top/dayhot'; $page=get($url) or die ...

  7. torch7在mac上的安装

    在安装torch7的时候,一开始一直参考的是官方的文档: http://torch.ch/docs/getting-started.html#_ 但是无论怎么装都无法成功,主要是卡在了source那一 ...

  8. 提交App Store注意事项1

    1.未遵守苹果iOS APP数据储存指导方针. 如果你的App有离线数据下载功能,尤其需要关注这一点.因为离线数据一般占用存储空间比较大,可以被重新下载和重建,但是用户往往希望系统存储空间紧时也依然能 ...

  9. Mac双系统切换

    苹果系统和WIN7系统  切换和使用说明 先按住“alt(opfion)”不放手,然后在按开机键,会进入选择页面,选择win8 会进入 windos页面 ,选择MACintos h HD(Mac)会进 ...

  10. Word添加新编号

    要用到(1)(2),不想手写,但是word只有1.2.3和1)2)3),我就自定义哦.