IOS静态库开发

      在企业级开发中,我们往往会把一些公司一些底层的东西进行包装,封装成不同平台的框架,供公司内部人员使用及外部使用,如百度地图,高德地图,微信等等,前段时间也一直在公司做相关的框架封装。

静态库和动态库的存在形式

  •     静态库:.a 和 .framework
  •     动态库:.dylib 和 .framework

静态库和动态库的区别

静态库:链接时,静态库会被完整地复制到可执行文件中,被多次使用就有多份冗余拷贝
  • 动态库:链接时不复制,程序运行时由系统动态加载到内存,供程序调用,系统只加载一次,多个程序共用,节省内存

注意:项目中如果使用了动态库,会苹果拒接

设备的CPU架构简介

模拟器:

  • 4s~5 : i386

  • 5s~6plus : x86_64

真机:

  • 3gs~4s : armv7

  • 5~5c : armv7s (静态库只要支持了armv7,就可以跑在armv7s的架构上)

  •  

5s~6plus : arm64

制作静态库​

        ​在开发中,有.a和.Framework两种形式的静态库,再XCODE6中支持直接开发,.Framework的静态库只需要做一步简单的设置就可以了,另外,关于两种形式的选择,公司采用的时.framework的形式,因为在使用的过程中,framework包中已经包含了头文件,而.a要另外的添加,其他没有什么大的区别。


选择framework的形式,设置项目名称,即可创建成功,在building setting中设置如下:


修改为static library的形式,就会以静态库的形式进行链接了。

需要暴露给外界的文件


点击"+",添加对应的头文件到public选项中。

编译:

再编译的时候,我们可以采用lipo命令查看生成的文件,有debug版本可release版本,debug有x86和x86_64两种,release有armv7s,arm7,arm64(静态库只要支持了armv7,就可以跑在armv7s的架构上)。

我采用的脚本的方式进行编译,不需要再编译两次或者再工程内添加:

再项目的根目录下添加一个脚本文件,如下图所示:



脚本如下:


说明:其中FMK_NAME是项目的名称,只要修改它就可以了,然后切换到命令行,执行 ./build.sh 即可。


大功告成!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值