今天我们来了解一下iOS开发当中的静态库。。。
首先有这么几个问题大家需要了解:
静态库是什么?
静态库有什么作用?为什么要用静态库?
如何打包静态库文件?
【静态库是什么】
简单来说。。。一个静态库是若干个类,函数,定义和资源的包装,你可以将其打包并很容易的在项目之间共享。。。大家平时开发中看到的.a文件。。。其实也就是一个静态库文件。。。
在开发的过程中我们会发现。。。有时候你导入了一些第三方框架。。。只看到.h文件。。。却找不到.m文件的踪迹。。。但是却可以成功地运行起来。。。这是为什么呢?
其实。。。那些.m文件早已被包装在.a文件当中。。。
【静态库有何作用 | 为什么要使用静态库】
首先。。。在不同项目的开发当中。。。我们也许会用到同样的几个类。。。这时候。。。为了节省项目的开发时间。。。我们会把这几个常用类进行打包。。。当我们又需要用到的时候只要导入项目当中就可以了。。。
其次。。。你希望你的这几个类可以跟朋友们一起分享。。。但是又不想让别人看到你的源代码。。。(这点私心是很正常的。。。小编偶尔也会有。。。)把它们打包成静态库文件是一个不错的选择。。。
综上所述。。。静态库具有以下特点(这也是大家之所以使用静态库的原因。。。):
你可以让一些通用代码处在自己的掌控中。。。必要时可以对其进行修复和更改;
你可以跟朋友分享资源。。。同时可以避免别人盗用你的代码;
你可以为项目开发节省出更多的时间。。。加快项目的进度;
【如何打包静态库文件】
对于打包静态库文件。。。其流程其实也是比较简单的。。。
首先打开我们的Xcode。。。选择创建一个新的项目工程。。。
但是要注意的是。。。我们要选择的不再是Application。。。而是选择Framework&Library下的Cocoa Touch Static Library(如图)。。。
点击之后。。。在弹出界面中有两个单选框(Use Automatic Reference Counting和Include Unit Tests)。。。在点击Next之前。。。请确保Use Automatic Reference Counting被选中且Include Unit Tests未选中。。。
点击Next后。。。我们会发现在项目Product文件夹下有一个.a文件。。。
当你把你要打包的类放入到项目中之后。。。command+B一下。。。然后到本地把.a文件和.h文件找出来。。。这样在之后的项目当中就可以直接使用了。。。
可是。。。到了这一步。。。似乎还有什么问题。。。
一般情况下。。。模拟器和真机上用的不是同一套静态库文件。。。这就意味着。。。每次需要使用这个静态库的时候。。。都要导入两个静态库文件。。。😤😤
那么。。。这个问题我们该如何处理?😥
这时候。。。我们只需要打开我们的终端输入以下代码
lipo -create 模拟器用.a文件路径 真机用.a文件路径 -output 最终生成的.a文件路径
运行之后打开生成的.a文件的路径。。。就可以看到文件了。。。之后的开发中就不再需要导入两个.a文件了。。。😺😺😺