iOS 深入理解framework

96
石虎132
2018.01.08 11:14 字数 656

//联系人:石虎 QQ:1224614774 昵称:嗡嘛呢叭咪

一、概念

1.framework(框架,其实相当于静态框架,不是动态库)

2.打包framework还是一个比较重要的功能,可以用来做一下事情:

(1)封装功能模块,比如有比较成熟的功能模块封装成一个包,然后以后自己或其他同事用起来比较方便。

(2)封装项目,两个项目相似或者嵌套,此时把嵌套的项目打包成framework放进去,这样比较方便。

二、为什么需要框架(Framework)

1.移除静态iOS框架

   要想用一种开发者友好的方式共享库是很麻烦的。你不仅仅需要包含库本身,还要加入所有的头文件,资源等等。

   苹果解决这个问题的方式是框架(framework)。基本上,这是含有固定结构并包含了引用该库时所必需的所有东西的文件夹。不幸的是,iOS禁止所有的动态库。同时,苹果也从Xcode中移除了创建静态iOS框架的功能。

   Xcode仍然可以支持创建框架的功能,重启这个功能,我们需要对Xcode做一些小小的改动。

   把代码封装在静态框架是被app store所允许的。尽管形式不同,本质上它仍然是一种静态库。

2.框架(Framework)的类别

   大部分框架都是动态链接库的形式。因为只有苹果才能在iOS设备上安装动态库,所以我们无法创建这种类型的框架。

   静态链接库和动态库一样,只不过它是在编译时链接二进制代码,因此使用静态库不会有动态库那样的问题(即除了苹果谁也不能在iOS上使用动态库)。

   “伪”框架是通过破解Xcode的目标Bundle(使用某些脚本)来实现的。它在表面上以及使用时跟静态框架并无区别。“伪”框架项目的功能几 乎和真实的框架项目没有区别(不是全部)。

   “嵌入”框架是静态框架的一个包装,以便Xcode能获取框架内的资源(图片、plist、nib等)。

    本次发布包括了创建静态框架和“伪”框架的模板,以及二者的“嵌入”框架。

谢谢!!!

iOS 技术大全
Gupao