IOS 静态库的制作

iOS 开发中经常使用到第三方 SDK,经常是打包成 .a 文件,我们称之为静态库,所以自然也就有了动态库. 

静态库  一般以 .a 或 .framework 结尾   动态库  以.dylib 和 .framework结尾静态库:链接时,静态库会被完整地复制到可执行文件中, 被多次使用就有多份冗余拷贝. 动态库:链接时不复制,程序运行时由系统动态加载到内存,供程序调用,系统只加载一次,多个程序共用,节省内存.但项目中如果使用了自制的动态库,不能被上传到 AppStore.苹果只能使用其提供的动态库.


如何制作静态库?

           1. 创建一个工程


           




 2.新创建工程



3. 删除系统创建的 staticLibTest.h 和 staticLibTest.m 文件,导入自己想要打包的文件.  eg: YAdchiveTest1.h






4.可以看到此时的 libStaticLibTest.a 文件是红色的, 选择 IOS Device , command + B 编译.





5.编译完成  libStaticLibTest.a 文件 由红色变为色.此时说明真机版的 .a 文件打包完成. 打包之前可在如下图位置选择需要暴露出来的头文件.





6. 生成模拟器运行的 .a 文件.选择模拟器. command + B 编译.此时可生成模拟器对应的 .a 文件. 注意: 运行在哪个模拟器上生成的 .a 文件就只能运行在其对应的 cpu 架构上.
    cpu 架构 : iPhone 4s  之前: i386   5 之后是 x86_64.  要想生成通用的 .a 文件,如下图设置,把 YES --> NO. command + B 运行.





7. 右键 工程下的 Products 文件夹下的 .a 文件 --> show inFinder.则可以看到刚才编译的两个文件. Debug-iphoneos 为真机的, Debug-iphonesimulator 为模拟器的.

 



8. 打开终端. 进入到 Debug-iphoneos 的上级目录,cd xxxx  .进入到文件夹后 输入 : lipo -info + .a文件路径.即可查看对应.a 文件所支持的 cpu 架构. 如下图.



9. 为了在模拟器和真机上同一个 .a 文件都可以运行,避免真机和模拟器导入两个.a 文件,可以将模拟器和真机的两个 .a 文件合为一个文件.
   
    终端键入命令: lipo  -create  真机.a绝对路径 模拟器.a 绝对路径  -output/Users/电脑名/Desktop/xxxx.a    合成文件存放桌面




10. 测试   new  一个新工程,导入 .a 以及生成 .a 是的文件中的 .h 文件







11. 在 appDelegate 中运行如下






     至此,一个静态库的基本制作就完成了.





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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值