静态库.a的制作,或framework的制作

来源:互联网 发布:.xyz域名查询 编辑:程序博客网 时间:2024/04/30 04:32
framework和.a两种静态库的介绍及区别
1、.a是一个纯二进制文件,.framework中除了有二进制文件之外还有资源文件。
2、.a文件不能直接使用,至少要有.h文件配合,.framework文件可以直接使用。
3、.a + .h + sourceFile = .framework。
4、.a只是静态库。framework既可以是静态库也可以是动态库。例如系统的framework就是动态库。
5、静态库:链接时完整地拷贝至可执行文件中,被多次使用就有多份冗余拷贝。
6、动态库:链接时不复制,程序运行时由系统动态加载到内存,供程序调用,系统只加载一次,多个程序共用,节省内存。然而苹果是不会让开发者有自己的动态库的。


framework制作及使用

1、新建framework项目


2、添加相关的类文件


3、设置对外公开的头文件


4、设置支持的最低系统版本


5、设置支持的指令集(arm64、armv7、armv7s、i386、x86_64)



6、修改Info.plist文件中的Bundle OS Type code(由BNDL改成FMWK)


7、Build Setting的相关修改

(1)Packaing-Warpper Extension:framework


(2)Linking-Mach-O Type:Static Library


(3)Linking-Dead Code Stripping:No


(4)Deployment-Strip Debug Symbols During Copy:No


(5)Deloyment-Strip Style:Non-Global Symbols


8、编译生成framework文件

(1)生成模拟器使用的framework文件(选择模拟器运行-菜单栏-Product-Build,或快捷键command+B)


(2)生成真机使用的framework文件(选择真机Generic iOS Device运行-菜单栏-Product-Build,或快捷键command+B)


(3)查看framework文件(展开Products文件夹,然后右击编译生成的framework文件,选择弹窗中的Show in Finder)


9、在实际开发场景中,更希望的是framework,既可以在模拟器上运行,也可以在真机上运行。所以可以将模拟器和真机上运行的framework合并。合并时,在终端使用命令"lipo -create 模拟器framework文件路径 真机framework文件路径 -output 合并文件路径 "处理。





注意事项:指令集必须设置完整,否则使用时会出现异常,如下图所示





0 0