目的:
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件下 的 进制
网友评论