iOS静态库和动态库

呈现方式

静态库:.a, .framework
动态库:.framework, .dylib(现在苹果改成了.tbd)

区别

静态库
  • 编译时被链接到目标代码中,如果有多处引用存在多次冗余拷贝,占用内存
  • 需要依赖.a+.h+资源
动态库
  • 运行时调用,不会产生冗余调用,占用内存小
  • framework文件可以直接使用
静态库架构及机型系统对照

静态库对应真机和模拟器两种形式,以下先列举下不同机型对应的架构:

  • 模拟器
    • iPhone4s~5 : i386
    • iPhone5s~6plus : x86_64
  • 真机
    • iPhone3gs~4s : armv7
    • iPhone5~5c : armv7s
    • iPhone5s~6plus : arm64
  • 机型和系统对照
    • 4s: iOS6+
    • 5: iOS6+
    • 5s/5c: iOS7+
    • 6: iOS8+
    • 6s: iOS9+
生成静态库步骤
  • 选择需要暴露的头文件,Build Parses->Copy Files添加,生成后在目录下的include里会找到这些文件


    暴露头文件

    生成后的头文件
  • command+B搞定
生成静态库命令
  • 查看架构信息 lipo -info xx.a/aa.a
    模拟器打包出来的架构
  • 合并静态库,主要场景是在模拟器和真机需要合并时,lipo -create xx.a yy.a -output zz.a
  • 分离静态库,主要将三方提供的库拆解成自己想要的,lipo xx.a -thin armv7 -output yy.a
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 文档中使用的Xcode版本:Xcode8 考虑到安全和复用,如果一些代码已稳定,可以封装成库文件。 闭源库 主要分...
    胡萝卜2大爷er阅读 367评论 4 1
  • 静态库和动态库 一、静态库和动态库的存在形式 静态库: .a 和 .framework 动态库: .dylib 和...
    草原烈鹰阅读 1,161评论 0 4
  • 1、什么是库 库是共享程序代码的方式,一般分为静态库和动态库。 2、静态库与动态库的区别 静态库:链接时完整地拷贝...
    伯牙呀阅读 1,444评论 0 6
  • 库是共享程序代码的方式静态库:链接时完整地拷贝至可执行文件中,被多次使用就有多份冗余拷贝。动态库:链接时不复制,程...
    利尔德阅读 213评论 0 0
  • 花腿残红青杏小,燕子飞时,绿水人家绕,天涯何处无芳草。 墙里秋千墙外道,墙外行人,墙里佳人笑,笑渐不闻...
    吉吉草阅读 650评论 0 0