美文网首页iOS开发
iOS开发-----静态库.a的制作教程

iOS开发-----静态库.a的制作教程

作者: jason_Yun | 来源:发表于2016-10-11 19:29 被阅读118次

(1)静态库和动态库的存在形式


静态库: .a 和 .framework

动态库: .dylib 和 .framework (最新的已经是.tbd和.framework)

(2)静态库和动态库在使用上的区别


静态库:链接时,静态库会被完整地复制到可执行文件中, 被多次使用就有多份冗余拷贝 

优点:

1.使自己的源码不会简单的暴漏给别人,保密性很好,但是在一个公司开发项目的话,这样不方便交流沟通。

2.当需要使用静态库的时候,只需要把相应的.h文件和.a文件拷贝到工程中就好,不需要再将所有的源码一一拷贝。这样既加快了开发流程,也不会使整个项目的压缩包很大。

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

动态库:链接时不复制,程序运行时由系统动态加载到内存,供程序调用,系统只加载一次,多个程序共用,节省内存

优点:

1.和静态函数库相比,动态函数库在编译的时候不会被编译进目标代码中,该函数库里的相应函数只有当程序执行到某些函数时才会被调用,因此动态函数库所产生的可执行文件并不会占用很大的内存。

2.由于函数库没有被整合进自己的程序,而是在程序运行时动态的申请并调用,所以程序的运行环境中必须提供相应的库。

3.动态函数库的改变并不影响你的程序,所以动态函数库的升级比较方便。

注意:

苹果公司规定:如果项目中使用自己写的动态库,就不能上传到AppStore

(3)制作过程

打开安装的Xcode,新建项目-> 选择 “Cocoa Touch Static Library”

添加所需要的库中包含的源代码,add to target 中的方框记得勾选

在此,本人选择的是AFNetworking库

选择需要暴露出来的 .h 文件, .m 文件会自动编译到 .a 文件中

从左侧库文件中选择所有的.h文件,拖动到右侧public中

先选择真机设备,然后然后 Command+B 编译,libAFNetworking.a的文件从红色变为黑色

选择模拟器,依然 Command+B ,模拟器和真机环境下用的 .a 文件是分开的,右击 “Show In Finder” ,查看制作好的 .a 文件

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

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

如果 Scheme 是 Release 模式,生成的文件夹就以 Release 开头

(4)合并.a文件,使得能同时用在真机和模拟器上

在终端输入命令:

lipo -create Debug-iphoneos/libAFNetworking.a的根路径 Debug-iphonesimulator/libAFNetworking.a的根路径 -output

(5)使用 .a

如何使用 .a

直接将 .a 、 .h 、资源文件拖拽到其他项目中即可

相关文章

  • 静态库

    iOS开发之静态库.a的制作教程http://www.cocoachina.com/ios/20150226/11...

  • iOS开发WorkSpace多工程联合编译

    参考链接 iOS开发之静态库.a的制作教程(有合并.a文件的方法)一篇较为详细的 ios静态动态库 的使用方法总结...

  • iOS开发-----静态库.a的制作教程

    (1)静态库和动态库的存在形式 静态库:.a和.framework 动态库: .dylib 和 .framewor...

  • iOS开发-静态库.a的制作教程

    简述 为了满足既供用户使用又维持代码保密性的需求,这时我们就有必要创建 库文件。苹果在这个方面提出了静态库和动态库...

  • iOS小知识 -- 静态库(一)

    静态库静态库的介绍.a静态库的制作以及测试静态库的架构问题.framework静态库的制作以及测试边开发边制作静态...

  • iOS 创建.a 静态库

    iOS开发中静态库(.a)制作 Xcode 9一般iOS 开发者都会引用第三的库 库根据根据源代码的公开情况 分为...

  • iOS开发之静态库制作(.a .frame)

    iOS开发之静态库制作(.a .frame) 什么是库?什么是静态库?还有什么库? 库是一个程序代码的集合(说的有...

  • iOS 静态库开发

    iOS 静态库开发 本文旨在说明静态库制作中的一些常见问题和特殊处理1. 打包静态库需要的相关问题和设置 静态库中...

  • iOS开发之制作framework

    iOS开发之制作framework 什么是framework Framework是资源的集合,将静态库(iOS8以...

  • iOS-开发自己的framework

    iOS开发之制作framework 什么是framework Framework是资源的集合,将静态库(iOS8以...

网友评论

    本文标题: iOS开发-----静态库.a的制作教程

    本文链接:https://www.haomeiwen.com/subject/nmubyttx.html