iOS中Framework如何制作

无论我们是在开发中还是在业务对接中,制作Framework都是经常遇到的,那我们如何对其进行制作哪,首先我们先来看下动态库与静态库的区别,我们了解的越多,那么我们对于自己做的事情也就越得心应手。

动态库与静态库的区别

静态库:连接时完整地拷贝至可执行文件中,被多次使用就有多份冗余拷贝;
动态库:连接时不复制,程序运行时由系统动态加载到内存,供程序调用,系统只加载一次,多个程序共用,节省内存
系统的.framework是动态库,我们自己建立的.framework是静态库

.a与.framework的区别

a. .a是一个纯二进制文件,.framework中除了有二进制文件之外还有资源文件
b. .a文件不能直接使用,至少要有.h文件配合,.framework文件可以直接使用
c. .a + .h + sourceFile = .framework

打包Framework流程

1.创建Framework工程

File->Project->Framework(选择iOS, 以及选择Framework & Library) 
命名工程是XMFramework

2.添加要集成打包的类.h/.m/.a/Bundle/Framework等

3.配置工程的打包环境

a.将Mach-O Type设为Static Library, framework可以是动态库也可以是静态库,对于系统的framework是动态库,而用户制作的framework只能是静态库;
选中XMFramework->Build Settings->Mach-O Type(搜索mach)
b.Build Active Architecture Only 修改为NO, 否则生成的静态库就只支持当前设备的架构;
c.iOS Deployment Target, 静态库需要支持的最低版本号要小于等于主项目的版本号
d.Valid Architecture 支持的iOS的CPU架构
  1. 工程配置
    a. 在frameworks下的Build Phases下的headers里面会有三个目录
    Public, Private, Project
将要给用户暴露出来的头文件加入到Public中,将要隐藏的头文件      拖入Private或是Project下
这样隐藏的头文件将无法被引用了

b.把允许别人应用的头文件引入到第一步创建项目是自动生成的 XMFramewok.h中,XMFramewok.h文件是整个包对外提供的入口头 文件
5.合并打包

  1. 分别在模拟器和真机设备下编译,生成两个XMFramewok.framework文件,然后将两个文件使用命令合成一个
lipo -create + 上面两个文件的路径+ -output + 合成后文件的输出路径
  1. 将上部生成的framework放入到真机编译的包中,就是将其替换掉,就得到了最终的是支持模拟器又支持真机的framework了

你可能感兴趣的:(iOS中Framework如何制作)