iOS中Framework如何制作

苏凯
2023-12-01

      在实际的iOS业务开发中,制作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架构

4.工程配置

a. 在frameworks下的Build Phases下的headers里面会有三个目录

Public, Private, Project

将要给用户暴露出来的头文件加入到Public中,将要隐藏的头文件 拖入Private或是Project下 这样隐藏的头文件将无法被引用了

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

5.合并打包

1、分别在模拟器和真机设备下编译,生成两个XMFramewok.framework文件,然后将两个文件使用命令合成一个

lipo -create + 上面两个文件的路径+ -output + 合成后文件的输出路径

2、将上部生成的framework放入到真机编译的包中,就是将其替换掉,就得到了最终的是支持模拟器又支持真机的framework了。

 

 类似资料: