制作Framework 的好处和缺点
好处:
1、如果模块间接口定义的比较完善,模块化的程序具有很好的可扩展性与内聚性;
2、物理上的模块化便于开发过程的管理与测试,尤其是在程序规模相对大。
3、如果可以使用胶水语言作为粘合剂,程序可以用很少的代价适应未来的变化。
4、可以在物理上实现 iOS 程序的模块化。
不足:
1、由于是静态库,应该不会有什么运行时的损失,但是没试验过,不确定。
2、资源的加载这部分,不知道会不会占用更多内存,没试验,不确定。
在项目开发中,共享代码是很常见的。由于iOS的限制,我们无法以“动态库”的形式共享代码。除了以源代码方式,我们只能选择静态库来共享代码。
“真框架”项目以编译后的二进制形式共享代码,本质上还是一种静态库。但由于Xcode的限制(没有提供相应的项目模板),要以框架的形式编译出静态库,仍然十分麻烦。
这是手工制作 Framework 的方法,网上有人制作了工程模版,可以直接生成 Framework 工程:
先下载框架:https://github.com/kstenerud/iOS-Universal-Framework
解压找到RealFramework进入找到install.sh,右键选择打开方式,用终端打开,真的FrameWork就加入Xcode了
打开进入shell
打开进入 ,然后 enter
然后输入y
输入你机子的密码:然后回车
最终提示installation complete 。please restart Xcode 。恭喜你成功了。
然后打开xcode 新建一个Framework
然后 新建一个TestFramework,然后新建一个myTestClass的类
然后在myTestClass.h中添加方法
-(void)testFunction;
然后在myTestClass.m中实现方法
- #import "myTestClass.h"
- @implementation myTestClass
- -(void)testFunction{
- UIAlertView *myAlert=[[UIAlertView alloc] initWithTitle:@"哈哈!这个是我自己的FrameWork"
- message:@"成功了"
- delegate:self
- cancelButtonTitle:@"取消"
- otherButtonTitles:nil, nil];
- [myAlert show];
- [myAlert release];
- }
- @end
将myTestClass.h移动到public中
然后bulid & run,ok了!哈哈!
接下来就是使用了,直接把上面生成的Build->Products->Debug-iphonesimulator->TestFrameWork.embeddedframework拖到你要使用的工程中
接下来是将TestFrameWork.framework添加到Link Binary With Libraries,可以直接从项目的左侧栏拖进这个区域。
然后就在你要使用的类里面进入头文件 ,
#import <TestFrameWork/myTestClass.h>
然后定义对象
- myTestClass* vc1=[[myTestClass alloc]init];
- [vc1 testFunction];
- [vc1 release];
恭喜你 第二种方法也会了哈哈!
还有提醒:
2。在制作framework或者lib的时候,如果使用了category ,则使用该FMWK的程序运行时会crash,此时需要在该工程中 other linker flags 添加两个参数 -ObjC -all_load
3。编译出Framework是,需要把 GenerateDebugSymbols =NO,否则会出现很多 warning:
类似
warning: (armv6) /Users/myuser/Library/Developer/Xcode/DerivedData/ ....build/Objects-normal/armv6/ImageRequest.o unable to open object file
相关推荐
IOS应用源码之【应用】iOS framework 制作教程【非静态包】.rar
iOS Framework制作打包教程,手把手叫你制作iOS Framework.
前两年IOS应用源码-主要是用于毕业设计学习的。
NULL 博文链接:https://hulefei29.iteye.com/blog/1262809
IOS应用源码之【应用】-iOS framework 制作教程【非静态包】.rar
IOS应用源码之【类库与框架】DragKit - an iOS framework for enabling drag & drop behavior
IOS应用源码之【类库与框架】-DragKit - an iOS framework for enabling drag & drop behavior.rar
NULL 博文链接:https://justsee.iteye.com/blog/2285574
opencv-4.6.0-ios-framework.zip
【应用】★★★★-iOS framework 制作教程【非静态包】.zipIOS应用例子源码下载【应用】★★★★-iOS framework 制作教程【非静态包】.zipIOS应用例子源码下载 1.适合学生学习研究参考 2.适合个人学习研究参考 3....
【类库与框架】★★★★★-DragKit - an iOS framework for enabling drag & drop【类库与框架】★★★★★-DragKit - an iOS framework for enabling drag & drop 1.适合学生学习研究参考 2.适合个人学习研究参考 3...
iOS打包framework的实例代码,Swift和OC实例都有,详细的内容可以看博客内容 iOS打包framework的详细步骤如下(Swift和OC通用): 1.创建framework项目 2.配置项目打包参数 3.创建测试代码(OC需要把头文件移动到public...
IOS创建静态Framework模板,执行后会在xcode生成静态framework模板 因为动态framework的生成需要IOS8.0以上的系统才能支持,否则不能上架,所以在支持IOS7.0或者以下的代码的时候需要使用静态framework 1.确保...
iOS常用宏定义和常用类别方法的framework包.
有关IOS移动开发中FRAMEWORK相关考题
opencv IOS framework
iOS Universal Framework ,iOS Universal Framework Mk 7 是 Xcode 4 的项目模板用来构建通用...
bilibili IJKPlayer-IOS framework编译后包
自己手把手实现IOS framework的创建以及在其它项目中引用(包括开发形式的引用),绝对有保证,有任何问题可咨询我351259738@qq.com