iOS创建.a和.framework静态库,以及Bundle资源文件的使用

本文详细介绍了如何在iOS中创建.a和.framework静态库,包括新建工程、配置、打包步骤。同时,讲解了Bundle资源文件的使用,用于存放资源文件,简化多人合作开发。创建静态库可以隐藏代码细节,仅提供接口供外部使用。
摘要由CSDN通过智能技术生成

引言

在开发中.framework静态库还是比较常见的,比如:SDK,公司间的代码合作等。我们可以把一些不愿意让别人见到的代码,用静态库的方式把它隐藏起来,只留下.h文件显示方法供编程人员使用。而.a文件出了静态库本身外,还需要引入.h文件,而.framework就不需要如此,由于.framework的方便性所以一般情况下我们见到的较多。

什么是库

库从本质上来说是一种可执行代码的二进制格式,可以被载入内存中执行。库分静态库和动态库两种。
iOS中的静态库有 .a 和 .framework两种形式;动态库有.dylib 和 .framework 形式,后来.dylib动态库又被苹果替换成.tbd的形式。

静态库与动态库的区别

静态库和动态库是相对编译期和运行期的:静态库在程序编译时会被链接到目标代码中,程序运行时将不再需要改静态库;而动态库在程序编译时并不会被链接到目标代码中,只是在程序运行时才被载入,因为在程序运行期间还需要动态库的存在。

Bundle文件

Bundle文件可以用于存放资源文件,可用于多人合作开发,避免资源重名。里面可以存储xib文、资源图片等。Bundle文件是静态的,不进行编译的。所以使用Bundle中的资源,就需要找到相应的资源路径。另外,我看别人博客上是说,.a文件中是无法用Bundle文件的,只能另存一个文件;Framework静态库可以用Bundle文件;我也没试过,请试过的小伙伴留言告诉我,我就偷个懒,嘿嘿

总结:同一个静态库在不同程序中使用时,每一个程序中都得导入一次,打包时也被打包进去,形成一个程序。而动态库在不同程序中,打包时并没有被打包进去,只在程序运行使用时,才链接载入(如系统的框架如UIKit、Foundation等),所以程序体积会小很多,但是苹果不让使用自己的动态库,否则审核就无法通过。

一、创建 .a 静态库

1. 新建工程。比如我们的工程名叫PSSTest,那么我们创建的.a静态库的名字最好就是前面加个lib,如libPSSTest.a。
  • 新建工程 (选中xcode,按commond + shift + N)
    图

  • 此时工程目录是这个样子,.a文件还没有被创建,因此是红色的
    图

  • 你可以把图中 libPSSTest.h.m 换成你自己要生成库的文件(可以是多个),在这里我就不换了,就用这两个文件,我们在.h文件中添加一个方法+sayHello,并在.m中实现它

// 一定要记得在.h中声明哦
+ (void)sayHello
{
    
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值