`

ios framework

    博客分类:
  • ios
 
阅读更多

制作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中实现方法

 

[html] view plaincopy
 
  1. #import "myTestClass.h"  
  2.   
  3. @implementation myTestClass  
  4. -(void)testFunction{  
  5.     UIAlertView *myAlert=[[UIAlertView alloc] initWithTitle:@"哈哈!这个是我自己的FrameWork"  
  6.                                                     message:@"成功了"  
  7.                                                    delegate:self  
  8.                                           cancelButtonTitle:@"取消"  
  9.                                           otherButtonTitles:nil, nil];  
  10.     [myAlert show];  
  11.     [myAlert release];  
  12.   
  13. }  
  14. @end  
然后在bulid phases中的copy headers 中添加想要的头文件到public

 


将myTestClass.h移动到public中


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

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


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


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

 

#import  <TestFrameWork/myTestClass.h>

然后定义对象

 

[html] view plaincopy
 
  1. myTestClass* vc1=[[myTestClass alloc]init];  
  2.    [vc1 testFunction];  
  3.    [vc1 release];  
然后Bulid & Run 就ok了!

 

 

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

还有提醒:

 

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应用源码Demo-iOS framework 制作教程【非静态包】-毕设学习.zip

    【iOS应用源码Demo-iOS framework 制作教程】是一个针对iOS开发者的资源包,旨在帮助他们学习如何创建自定义的非静态Framework。这个压缩包包含了一份完整的源代码示例,是两年前的项目,适用于那些正在进行毕业设计...

    IOS应用源码之【应用】iOS framework 制作教程【非静态包】.rar

    在iOS开发中,框架(Framework)是用于组织和共享代码的重要工具,它们为开发者提供了预构建的功能集合,以便快速高效地构建应用程序。本教程将详细讲解如何制作非静态的iOS Framework,这是一种动态链接库,允许在...

    iOS Framework制作打包教程

    iOS Framework制作和打包是iOS开发中的一个重要环节,它能够让你将重复使用的代码封装成一个模块化的组件,从而简化开发流程,提高开发效率。本文将详细介绍iOS Framework的创建和打包过程。 首先,我们需要理解...

    iOS framework 制作教程,这次不是静态包!!!

    在iOS开发中,框架(Framework)是代码复用和组织项目结构的重要手段。通常,我们接触到的iOS框架有两种类型:静态库(Static Library)和动态库(Dynamic Library)。本教程将重点讨论如何制作动态框架,因为标题...

    ios使用cmake编译framework

    本篇文章将深入探讨如何使用CMake构建iOS框架(framework),并介绍相关的关键知识点。 首先,我们来理解“iOS.cmake”——这是一个工具链文件(toolchain file)。在CMake中,工具链文件用于指定特定平台的编译器...

    iOS的framework动态库

    在iOS开发中,框架(Framework)是包含头文件、库文件和资源的打包结构,用于提供特定功能和服务。本文将深入探讨iOS中的动态库,即Dynamic Framework,它们是如何工作的,以及如何在项目中使用和创建。 动态库与...

    【应用】★★★★-iOS framework 制作教程【非静态包】.zipIOS应用例子源码下载

    【应用】★★★★-iOS framework 制作教程【非静态包】.zipIOS应用例子源码下载【应用】★★★★-iOS framework 制作教程【非静态包】.zipIOS应用例子源码下载 1.适合学生学习研究参考 2.适合个人学习研究参考 3....

    opencv-4.6.0-ios-framework.zip

    opencv-4.6.0-ios-framework.zip

    【类库与框架】★★★★★-DragKit - an iOS framework for enabling drag & drop

    【类库与框架】★★★★★-DragKit - an iOS framework for enabling drag & drop【类库与框架】★★★★★-DragKit - an iOS framework for enabling drag & drop 1.适合学生学习研究参考 2.适合个人学习研究参考 3...

    iOS framework打包实例demos

    iOS打包framework的实例代码,Swift和OC实例都有,详细的内容可以看博客内容 iOS打包framework的详细步骤如下(Swift和OC通用): 1.创建framework项目 2.配置项目打包参数 3.创建测试代码(OC需要把头文件移动到public...

    iOS制作FrameworkDemo

    在iOS开发中,创建自己的Framework可以极大地提高代码的复用性和模块化。"iOS制作FrameworkDemo"是一个关于如何构建和使用iOS Framework的示例项目。在这个压缩包中,包含了一个名为"SwitchChange"的文件,这可能是...

    ios创建和使用framework

    在iOS开发中,Framework是一种非常重要的组件,它封装了可重用的代码库,便于开发者在不同项目间共享和管理代码。本篇文章将详细介绍如何在iOS中创建和使用Framework,以及如何在模拟器和真机上进行实测。 首先,...

    IOS应用源码之【应用】-iOS framework 制作教程【非静态包】.rar

    在iOS开发中,框架(Framework)是用于组织和共享代码的一种机制,它包含库、头文件和其他资源。本教程将重点讲解如何制作一个非静态的iOS框架,这涉及到动态库的创建,相比于静态库,动态库可以减少应用程序的大小...

    ios创建framework静态库demo

    在iOS开发中,创建一个Framework静态库是一种常见的方式,它可以帮助开发者封装常用代码,提高代码重用性,并保护知识产权。本篇文章将详细讲解如何通过一个简单的demo来创建一个iOS的静态库。 首先,理解框架...

    IOS创建静态Framework模板

    IOS创建静态Framework模板,执行后会在xcode生成静态framework模板 因为动态framework的生成需要IOS8.0以上的系统才能支持,否则不能上架,所以在支持IOS7.0或者以下的代码的时候需要使用静态framework 1.确保...

    iOS常用宏定义framework

    在iOS开发中,框架(Framework)是至关重要的组成部分,它包含了一组相关的库、资源以及接口定义,方便开发者快速构建应用程序。"iOS常用宏定义framework" 提供了一系列预定义的宏和常用类别方法,旨在提高开发效率...

    IOS源码之DragKit-an iOS framework for enabling drag & drop behavior

    在iOS开发中,拖放(Drag & Drop)功能是一个重要的用户交互方式,它允许用户通过手势将内容从一个位置移动到另一个位置。DragKit是一个专为iOS设计的框架,它为开发者提供了实现拖放行为的强大工具。这个框架使得在...

Global site tag (gtag.js) - Google Analytics