iOS 开发 Framework 制作Framework 的好处和缺点

好处:

      1、如果模块间接口定义的比较完善,模块化的程序具有很好的可扩展性与内聚性;

      2、物理上的模块化便于开发过程的管理与测试,尤其是在程序规模相对大。

      3、如果可以使用胶水语言作为粘合剂,程序可以用很少的代价适应未来的变化。

      4、可以在物理上实现 iOS 程序的模块化。

不足:

      1、由于是静态库,应该不会有什么运行时的损失,但是没试验过,不确定。

      2、资源的加载这部分,不知道会不会占用更多内存,没试验,不确定。

 在项目开发中,共享代码是很常见的。由于iOS的限制,我们无法以“动态库”的形式共享代码。除了以源代码方式,我们只能选择静态库来共享代码。

    “真框架”项目以编译后的二进制形式共享代码,本质上还是一种静态库。但由于Xcode的限制(没有提供相应的项目模板),要以框架的形式编译出静态库,仍然十分麻烦。

  这是手工制作 Framework 的方法,网上有人制作了工程模版,可以直接生成 Framework 工程:

    先下载框架:https://github.com/kstenerud/iOS-Universal-Framework

   解压找到RealFramework进入找到install.sh,右键选择打开方式,用终端打开,真的FrameWork就加入Xcode了

iOS 开发 Framework
制作Framework 的好处和缺点

iOS 开发 Framework
制作Framework 的好处和缺点

打开进入shell

iOS 开发 Framework
制作Framework 的好处和缺点

打开进入ctrl+c ,然后 enter

iOS 开发 Framework
制作Framework 的好处和缺点

然后输入y

iOS 开发 Framework
制作Framework 的好处和缺点

输入你机子的密码:然后回车

iOS 开发 Framework
制作Framework 的好处和缺点

最终提示installation complete 。please restart  Xcode 。恭喜你成功了。

然后打开xcode 新建一个Framework

iOS 开发 Framework
制作Framework 的好处和缺点

然后 新建一个TestFramework,然后新建一个myTestClass的类

iOS 开发 Framework
制作Framework 的好处和缺点

iOS 开发 Framework
制作Framework 的好处和缺点

然后在myTestClass.h中添加方法

-(void)testFunction;

然后在myTestClass.m中实现方法

 
然后在bulid phases中的copy headers 中添加想要的头文件到public 

iOS 开发 Framework
制作Framework 的好处和缺点

将myTestClass.h移动到public中

iOS 开发 Framework
制作Framework 的好处和缺点

然后bulid & run,ok了!哈哈!

 接下来就是使用了,直接把上面生成的Build->Products->Debug-iphonesimulator->TestFrameWork.embeddedframework拖到你要使用的工程中

iOS 开发 Framework
制作Framework 的好处和缺点

接下来是将TestFrameWork.framework添加到Link Binary With Libraries,可以直接从项目的左侧栏拖进这个区域。

iOS 开发 Framework
制作Framework 的好处和缺点

然后就在你要使用的类里面进入头文件 ,

#import  <TestFrameWork/myTestClass.h>

然后定义对象 然后Bulid & Run 就ok了! 

iOS 开发 Framework
制作Framework 的好处和缺点

  恭喜你 第二种方法也会了哈哈!

还有提醒:

2。在制作framework或者lib的时候,如果使用了category ,则使用该FMWK的程序运行时会crash,此时需要在该工程中 other linker flags 添加两个参数  -ObjC -all_load

3。编译出Framework是,需要把 GenerateDebugSymbols =NO,否则会出现很多 warning:

类似