iOS静态库的制做

iOS静态库的制做

背景知识

  • 库能够分为静态库和动态库,一般使用制做的都是静态库,使用本身制做的动态库是不能上线的。
  • 静态库每次使用都会加载一次,比较耗资源。动态库通常是系统公用的,只须要加载一次,也就是多个App使用的是同一个动态库。
  • 静态库是由.a和.frameWork组成。动态库是由 .dylib和.frameWork组成。
  • 本身制做的.frameWork 是静态库,系统使用的.framework是动态库。
  • .a是一个二进制文件,是不能直接使用的。须要添加.h文件才能使用。
  • .a + .h +sourcefile = .framework

制做流程

.a制做

  • 建立Cocoa Touch Static Libraryios

  • 命名SDK的名称
  • 删除.m文件架构

  • 添加SDK的真正功能的类文件测试

  • 编辑SDK头文件ui

  • 设置编译全部架构 Build settings->Build Active Architecture Only --> NOcode

  • 编译前切换成release模式blog

  • 分别在模拟机和真机上build一次,得到.a文件ip

  • 将真机得到的.a文件和模拟机得到的.a文件合并成一个新的.a文件
lipo -create
模拟器.a文件目录  
真机.a文件目录
-output  输出目录/文件
  • 将合并好的.a 文件和全部相关.h文件都放在同一个文件夹中,此时该文件夹就是一个能够使用的静态库了资源

  • 测试,建立一个独立项目,将该文件夹导入项目中使用。it

.framework制做

  • 建立Cocoa Touch frameworkio

  • 添加SDK的真正功能的类文件

  • 编辑SDK头文件

  • 配置header

  • 配置库链接类型

  • 设置编译全部架构 Build settings->Build Active Architecture Only --> NO

  • 编译前切换成release模式

  • 分别在模拟机和真机的状态下build一下获得两个MyFramework.framework文件,每一个MyFramework.framework文件里面包含MyFramework文件

  • 合并两个MyFramework文件
lipo -create
模拟机的MyFramework.framework下的MyFramework路径
真机的MyFramework.framework下的MyFramework路径
-output  输出目录/文件
  • 将合并生成的MyFramework 替换掉真机MyFramework.framework下的MyFramework。此时真机下的MyFramework.framework就是制做完成了。
  • 测试,建立一个独立的项目,将MyFramework.framework导入到项目中。添加Header search Path。

相关文章
相关标签/搜索