美文网首页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的制作教程

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