Framework 制作
前言
我们可以看出.a的封装和.framework的封装差不多,也有模拟器和真机合并的过程,通过上边的图片我们可以看出.a 和.framework的区别,就是.a+.h+soureFile=.framework。可以看出我们直接封装.framework其实是最好的。那么我们就来看看framework怎么封装的。
实现步骤:
一、新建 Project - Framework&Library - Cocoa TouchFramework,点击Next,然后选择语言和输入项目库名称
建立完成,会看到默认生成的一个 xxx.h 和 Info.plist 文件(只看红框内)
解释一下这两个文件:
xxx.h 文件的作用是整个包对外提供的入口头文件,除了正常定义参数属性之外,还有
1、提供Swift项目内引用的OC文件的import引用,注意,这里引用之前必须在Build Phrases的Headers内暴露到 Public
2、提供所有对外访问文件(包括第三方文件)的import引用
info.plist文件的作用就如同正常项目的plist文件作用,用来定义或添加一些属性。
二、添加文件,这里可以自己新建,或者从已有项目拷贝过来都可以
1、这里要注意一下:由于打包类库工程不是一个完整项目工程,所以并没有AppDelegate等文件,所以涉及到这些的文件要额外处理,或改代码,或适当改变功能。
2、注意:工程如果有桥接文件,是不能拷贝过来的,否则编译不通过。因为正常情况下,如果我们swift项目引入了oc文件,我们必须通过一个桥接文件来处理两者之间的转换,而我们在新建类库包的时候,是禁止桥接文件存在的,即使你添加了,也会永远编译不过,打包不了。
所以这里就用到这个 xxx.h 头文件了。我们可以通过这个文件来实现两者之间的转换,前提就是必须先将oc的.h暴露出来,否则即使你import,也会报错找不到.h 文件。
3、PS:这里涉及到一个资源文件的问题,比如图片、视频、音频以及xib、storyboard等的处理。之前正常项目的做法可能是这样:
1:直接用Assets.xcassets
2:新建resources文件夹,存放图片
但这里,需要注意一点:
对于方法1,这样做是无效的,我们可以新建一个bundle文件,将图片移植过来。
对于方法2,我们可以在本地,直接修改添加后缀.bundle实现
然后另一个重点就是