美文网首页
ios中静态库.a的制作

ios中静态库.a的制作

作者: 杭州七木科技 | 来源:发表于2017-12-25 12:37 被阅读0次

    在ios中制作静态库之前,先来了解关于静态库的一些概念。

    一、什么是库?
    库是共享程序代码的方式,一般分为静态库和动态库。
    静态库:链接时完整地拷贝至可执行文件中,被多次使用就有多份冗余拷贝。
    动态库:链接时不复制,程序运行时由系统动态加载到内存,供程序调用,系统只加载一次,多个程序共用,节省内存。
    
    二、库的类型
    开源库
    公开源代码,能看到具体实现
    比如 SDWebImage 、 AFNetworking
    
    闭源库
    不公开源代码,是经过编译后的二进制文件,看不到具体实现
    主要分为:静态库、动态库
    
    三、iOS里静态库形式?
    .a和.framework
    
    四、iOS里动态库形式?
    .dylib和.framework
    
    五、framework为什么既是静态库又是动态库?
    系统的.framework是动态库,我们自己建立的.framework是静态库。
    
    六、a与.framework有什么区别?
    .a是一个纯二进制文件,.framework中除了有二进制文件之外还有资源文件。
    .a文件不能直接使用,至少要有.h文件配合,.framework文件可以直接使用。
    .a + .h + sourceFile = .framework。
    建议用.framework.
    
    七、为什么要使用静态库?
    方便共享代码,便于合理使用。
    实现iOS程序的模块化。可以把固定的业务模块化成静态库。
    和别人分享你的代码库,但不想让别人看到你代码的实现。
    开发第三方sdk的需要。
    
    

    八、静态库和动态库在使用上的区别。
    静态库:链接时,静态库会被完整地复制到可执行文件中, 被多次使用就有多份冗余拷贝 (下图示)


    静态库和动态库的加载区别.png

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


    区别2.png
    在实际的编程过程中,通常会把一些公用函数制成函数库,供其它程序使用,一则提搞了代码的复用;二则提搞了核心技术的保密程度。所以在实际的项目开发中,经常会使用到函数库,函数库分为静态库和动态库两种。

    和多数人所熟悉的动态语言和静态语言一样,这里的所谓静态和动态是相对编译期和运行期的:静态库在程序编译时会被链接到目标代码中,程序运行时将不再需要改静态库;而动态库在程序编译时并不会被链接到目标代码中,只是在程序运行时才被载入,因为在程序运行期间还需要动态库的存在。

    下面介绍下关于.a静态库制作的基本流程
    1.创建静态库


    创建静态库.png

    2.静态库中声明方法并实现(用于静态库使用的测试)


    方法声明和使用.png
    3.关于静态库的一些参数配置
    3.静态库配置.png
    4.静态库中需要暴露的头文件
    4.文件打包和暴露头文件.png

    5.分别使用模拟器和真机编译
    编译模式设置为Release模式,原来的库文件由红色变为黑色,说明编译成功。


    5.1scheme配置1.png 5.2scheme配置2.png 模拟器编译.png

    6.查看打包出来的文件状态
    Show Finder查看库文件


    查看静态库状态.png

    7.合并真机和模拟器库文件

    打开终端,进行以下操作
    一、在终端输入:lipo -create

    二、将release-iphonesimulator下的.a拖进终端,输入一个空格;

    三、继续将release-iphoneos 下.a 拖进终端,输入空格;

    四、继续输入:-output ,打个空格;

    五、输入合并后的.a所要放的文件路径


    7.合并文件.png

    8.查看静态库状态
    一、在终端输入:lipo -info ;

    二、将合并后的.a拖进终端 ,回车;
    [图片上传中...(8.查看静态库状态.png-db2f76-1513126960067-0)]

    至此,关于静态库制作完成。

    接下来,介绍如何导入并使用刚刚打包好的静态库。
    1.导入库文件


    使用1.导入静态库.png

    查看库文件,是否在引用库中


    使用2.库链接.png
    2.使用静态库
    使用3.调用使用使用静态库.png

    至此,全文关于.a静态库的制作和使用介绍完毕。
    参考文章
    手把手教你制作.a静态库
    iOS开发中静态库制作 之.a静态库制作及使用篇

    相关文章

      网友评论

          本文标题:ios中静态库.a的制作

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