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

制作.a静态库

作者: Z_Tree先生 | 来源:发表于2017-07-19 10:59 被阅读15次

    目的:

    1>国内的企业,掌握有核心技术,同时是又希望更多的程序员来使用其技术,因此采用"闭源"的方式开发使用

    例如:百度地图,友盟,JPush等

    2>在企业开发中,一些核心技术或者常用框架,出于安全性和稳定性的考虑,也会提供静态库给程序员使用

    制作.a静态库:

    1.新建工程:选中第二个分类Framework & Library ->Cocoa TouchStatic Library,在这里面创建的工程,编译后就会生成.a文件,直接拖拽到你的开发工程中就可以使用。

    2.暴露.h文件:单纯编译是没办法将.h文件暴露出来,所以要做如下操作,Build Phases ->Copy Files(0 items) -> + ,添加自己要暴露出来的.h文件

    3.编译工程,生成.a文件:因为静态库在不支持的CPU架构上运行会报错,所以为了你制作的.a文件在模拟器与真机都能正常运行,请在真机与模拟器环境下都编译一次,生成两个CPU架构的.a文件,在进行合并,在丢到项目中就不会报错,下面是架构与型号的对照表:

    4.查看.a文件的CUP机构:打开命令符->cd 拖拽.a文件到命令符中,回车->lipo -info 静态库名称,回车

    5.设置能支持所有模拟器版本的.a文件:

    6.设置成能支持所有真机和模拟器版本的.a文件:就是把模拟器的文件和真机的文件合并,重新命名。步骤:接着刚才的命令符 cd ..,会退到上个文件夹->lipo -create Debug-iphoneos(模拟器的.a文件夹)/libTools.a Debug-iphonesimulator(真机的.a文件夹)/libTools.a -output libTools.a(libTools.a:这个是你的类名,你自己改成自己生产的.a文件名)

    之后就大功告成了!!!!!

    #合并.a

    lipo -create Debug-iphoneos/libTools.a Debug-iphonesimulator/libTools.a -output libTools.a

    #合并.a的好处,开发过程中既可以在真机上调试,也可以在模拟器上调试

    #合并.a的坏处,如果静态库太大,合并打包后,会非常大,因此很多第三方的静态库的.a是区分版本的

    #今后在使用.a时一定注意版本

    3.边开发边制作静态库

    添加 个静态库的targets—>点击项—>targets—>+

    测试静态库:项—>项 的target—>general—>linked framework—>添加静态库

    打包静态库—>选中项 静态库—>编译(头 件)

    4.使 静态库的注意点:静态库有真机和模拟器(测试阶段可以使 模拟器,发布阶段使 真机).好处:资

    源包变

    静态库有Debug版和release版本(测试阶段使Debug,发布阶段使release).好处:资源包变/运 速度变快/代码进 优化

    5.制作.framework库1>动态库(默认)

    注意:如果项 中 到了动态库进 设置:项—>项 的target—> general—

    >Embedded—>添加动态库

    2>静态库

    制作静态库的修改配置:项—>静态库的target—>build setting—>搜索mach

    —>static library

    3>注意点

    查看 个.framework静态库 持哪些架构:lipo -info framework件下 的 进制

    合并静态库:合并framework件下 的 进制

    相关文章

      网友评论

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

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