开源框架iOS-Universal-Framework帮助快速建立一个共享的库
2012-05-06 22:42
375 查看
开源框架,帮助快速建立一个共享的库,方便team开发:
https://github.com/kstenerud/iOS-Universal-Framework
参考:
http://blog.csdn.net/kmyhy/article/details/7419222
这个东西总结起来就是帮助封装:lib以及resource,主要3步:
1.把现有的项目(需要供其它人使用的)准备好
2.把东西全部拖动到realframe的项目里面,编译项有些特殊。会暴露.h
3. 把2中输出的文件拖到需要使用封装的lib的项目中,然后就和一般使用系统lib一样的方式,imports header,使用其中的方法/类等。
在项目开发中,共享代码是很常见的。
由于iOS的限制,我们无法以“动态库”的形式共享代码。除了以源代码方式,我们只能选择静态库来共享代码。
“真框架”项目以编译后的二进制形式共享代码,本质上还是一种静态库。但由于Xcode的限制(没有提供相应的项目模板),要以框架的形式编译出静态库,仍然十分麻烦。
首先,你需要下载iOS Universal Framework Mk 7。解压elc-ELCImagePickerController-b5357fa.zip。在解压目录下,打开终端运行RealFramework目录(即“真框架”)下的install.sh脚本。真框架就会安装到Xcode中。
注意:install.sh脚本需要root权限。
现在我们准备把一个正常的Application项目封装为“真框架”项目。这个正常的Application项目可以独立运行,拥有自己的window、viewcontroller和图形界面。
当然,你手上可能拥有别的Application项目,你完全可以把自己的Application项目封装为“真框架”。
把这个Application项目的资源:.h文件、.m文件、.xib文件、.png文件、.plist文件,甚至是数据库文件都拖到TestFramework项目中来,包装!
将所需头文件拖到Public段。凡是使用该框架时要用到的头文件都应该声明为Public。这里,为图省事,我把所有头文件都声明为Public了。
然后Build项目。编译结果将放在“{USERNAME}/Library/Developer/Xcode/DerivedData/{PROJECT_NAME_AND_RANDOM_CRAP}/Build/Products/{BUILD_TYPE}”目录下。每个BUILD_TYPE目录下都有一个.embeddedframework和一个.framework文件。其中.framework只包含代码,.embeddedframework除代码外还包括资源。一般使用.embeddedframework。
注意,有时候编译出现“UILable 类型未声明”之类的错误。这是因为在Application项目中,默认是包含UIKit头文件的,而“真框架”项目却未包含UIKite头文件,所有的UIKit类型都不能被Xcode正确识别。我们只需要在.pch文件中加入“#import <UIKit/UIKit.h>”语句即可。
二、使用“真框架”
很简单,新建一个Application项目,将.embeddedframework文件(其实是一个文件夹)直接拖到项目文件夹中:
在TestFramework.embbeddedframework中,已经包含了TestFramework.framework,同时还有一个Resources目录,包含了真框架用到的所有资源。
查看Target的Builder Phases,你可以发现TestFramework.framework框架已经被包含进LinkBinary with Libraries了。
当然,由于“真框架”并不会把依赖的库编译到框架文件中(仅仅是引用),我们还必需在项目中加入TestFramework框架所用到的其他库和/框架(图中所列的库/框架因具体项目而异):
现在,我们就可以在Application中使用真框架了:
#import <TestFramework/System.h>
⋯⋯
System* vc=[[Systemalloc]init];
self.window.rootViewController=vc;
[vc release];
https://github.com/kstenerud/iOS-Universal-Framework
参考:
http://blog.csdn.net/kmyhy/article/details/7419222
这个东西总结起来就是帮助封装:lib以及resource,主要3步:
1.把现有的项目(需要供其它人使用的)准备好
2.把东西全部拖动到realframe的项目里面,编译项有些特殊。会暴露.h
3. 把2中输出的文件拖到需要使用封装的lib的项目中,然后就和一般使用系统lib一样的方式,imports header,使用其中的方法/类等。
在项目开发中,共享代码是很常见的。
由于iOS的限制,我们无法以“动态库”的形式共享代码。除了以源代码方式,我们只能选择静态库来共享代码。
“真框架”项目以编译后的二进制形式共享代码,本质上还是一种静态库。但由于Xcode的限制(没有提供相应的项目模板),要以框架的形式编译出静态库,仍然十分麻烦。
首先,你需要下载iOS Universal Framework Mk 7。解压elc-ELCImagePickerController-b5357fa.zip。在解压目录下,打开终端运行RealFramework目录(即“真框架”)下的install.sh脚本。真框架就会安装到Xcode中。
注意:install.sh脚本需要root权限。
现在我们准备把一个正常的Application项目封装为“真框架”项目。这个正常的Application项目可以独立运行,拥有自己的window、viewcontroller和图形界面。
当然,你手上可能拥有别的Application项目,你完全可以把自己的Application项目封装为“真框架”。
把这个Application项目的资源:.h文件、.m文件、.xib文件、.png文件、.plist文件,甚至是数据库文件都拖到TestFramework项目中来,包装!
将所需头文件拖到Public段。凡是使用该框架时要用到的头文件都应该声明为Public。这里,为图省事,我把所有头文件都声明为Public了。
然后Build项目。编译结果将放在“{USERNAME}/Library/Developer/Xcode/DerivedData/{PROJECT_NAME_AND_RANDOM_CRAP}/Build/Products/{BUILD_TYPE}”目录下。每个BUILD_TYPE目录下都有一个.embeddedframework和一个.framework文件。其中.framework只包含代码,.embeddedframework除代码外还包括资源。一般使用.embeddedframework。
注意,有时候编译出现“UILable 类型未声明”之类的错误。这是因为在Application项目中,默认是包含UIKit头文件的,而“真框架”项目却未包含UIKite头文件,所有的UIKit类型都不能被Xcode正确识别。我们只需要在.pch文件中加入“#import <UIKit/UIKit.h>”语句即可。
二、使用“真框架”
很简单,新建一个Application项目,将.embeddedframework文件(其实是一个文件夹)直接拖到项目文件夹中:
在TestFramework.embbeddedframework中,已经包含了TestFramework.framework,同时还有一个Resources目录,包含了真框架用到的所有资源。
查看Target的Builder Phases,你可以发现TestFramework.framework框架已经被包含进LinkBinary with Libraries了。
当然,由于“真框架”并不会把依赖的库编译到框架文件中(仅仅是引用),我们还必需在项目中加入TestFramework框架所用到的其他库和/框架(图中所列的库/框架因具体项目而异):
现在,我们就可以在Application中使用真框架了:
#import <TestFramework/System.h>
⋯⋯
System* vc=[[Systemalloc]init];
self.window.rootViewController=vc;
[vc release];
相关文章推荐
- 一个静态库框架模板: iOS Universal Framework Mk 7
- 一个静态库框架模板: iOS Universal Framework Mk 7
- 开源框架:iOS-Universal-Framework
- 一个静态库框架模板: iOS Universal Framework Mk 7
- 一个静态库框架模板: iOS Universal Framework Mk 7
- ios开源框架--iOS-Universal-Framework的配置环境和使用
- iOS 数据库开源框架FMDB的快速入门与使用
- 我开发的一个微信快速开发框架(WechaT Framework,简称WTF)
- iOS快速开发框架Bee-Framework应用和解析(三) --- Message, Model, Signal
- Arms是一个整合了大量主流开源项目的Android Mvp快速搭建框架
- iOS快速开发框架Bee-Framework应用和解析 (四,完结)UI容器,UICell, UILayout(XML + CSS)
- ios快速创建一个app框架
- Curator-Framework开源Zookeeper快速开发框架介绍
- EhCache 是一个纯Java的进程内缓存框架,具有快速、精干等特点,是hibernate中默认的CacheProvider Ehcache是一种广泛使用的开源Java分布式缓存。主要面向通
- ios开源框架——如何在iOS SDK中创建一个umbrellaframework(framework库的再封装)
- iOS快速开发框架Bee-Framework应用和解析(二) - Bee framework架构概览
- iOS 数据库开源框架FMDB的快速入门与使用
- Curator-Framework开源Zookeeper快速开发框架介绍
- Curator-Framework开源Zookeeper快速开发框架介绍
- 开源框架系列:.NET Enterprise CMS Framework --- RapidWebDev 快速开发产品管理示例程序