xcode4.3.2 下制作ios的framework 库

http://blog.sina.com.cn/s/blog_74e9d98d01014j2h.html


写在前面:

通过 Framework 可以在物理上实现 iOS 程序的模块化。

好处:

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

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

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

不足:

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

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



1、新建一个静态库工程:

xcode4.3.2 下制作ios的framework 库_第1张图片

xcode4.3.2 下制作ios的framework 库_第2张图片

 


2、删除向导所生成工程中的 Target:

xcode4.3.2 下制作ios的framework 库_第3张图片

删除目标前工程状态


xcode4.3.2 下制作ios的framework 库_第4张图片

删除目标后工程状态



 

3、删除旧目标对应的工程文件夹:

xcode4.3.2 下制作ios的framework 库_第5张图片

删除前,注意:此处删除会弹出提示框,要选择“只删除引用”


xcode4.3.2 下制作ios的framework 库_第6张图片

删除后



 

4、删除旧目标对应的编译设置(Product菜单| Edit Scheme命令):

xcode4.3.2 下制作ios的framework 库_第7张图片


点击左下角的 Manage Schemes 按钮:

xcode4.3.2 下制作ios的framework 库_第8张图片


选中旧的 Scheme,点击左下角的减号删除:

xcode4.3.2 下制作ios的framework 库_第9张图片

删除完成后,点击 OK 返回。



 

5、增加一个新目标。点击 “Add Target”

xcode4.3.2 下制作ios的framework 库_第10张图片


在弹出的对话框中选择 Mac OS X 下的 Bundle:

xcode4.3.2 下制作ios的framework 库_第11张图片

xcode4.3.2 下制作ios的framework 库_第12张图片

如上图,给库取一个名字,保持默认的 Framework(CoreFoundation),然后点击 Finish。



 

6、修改新目标的工程设置。选中 TARGETS 中对应的目标, Build Settings 页:

xcode4.3.2 下制作ios的framework 库_第13张图片


在 Architectures 下,将”Base SDK”改为”Latest iOS”,然后将 “Architectures” 改为 “Standard”:



在 Deployment 下,将 “Mac OS X Deployment Target”改为”Compiler Default”,将 “Targeted Device Family”改为需要的,此处改成了”iPhone/iPad”,同时可以根据需要修改 “iOS Deployment Target”,此处改为了 “iOS 3.0”:

xcode4.3.2 下制作ios的framework 库_第14张图片


在 Linking 中,将 “Dead Code Stripping” 改为 “NO”,将 “Link with Standard Libraries” 改为 “NO”,将 “Mac-O Type” 改为 “Relocatable Object File”:

xcode4.3.2 下制作ios的framework 库_第15张图片


在 Packaging 中,将 “Wrapper Extention” 改为“framework”:




 

7、修改目标的 Info。点击 Info:

xcode4.3.2 下制作ios的framework 库_第16张图片


将 “Bundle OS Type Code” 改为 “FMWK”(Framework 的意思):

xcode4.3.2 下制作ios的framework 库_第17张图片

 


8、修改预编译头:

xcode4.3.2 下制作ios的framework 库_第18张图片

修改前


xcode4.3.2 下制作ios的framework 库_第19张图片

修改后



 

9、向工程中添加一个类(ViewController 与 Xib):

xcode4.3.2 下制作ios的framework 库_第20张图片

xcode4.3.2 下制作ios的framework 库_第21张图片

xcode4.3.2 下制作ios的framework 库_第22张图片


结果如下:

xcode4.3.2 下制作ios的framework 库_第23张图片



 

10、导出相关文件。选中 Target,点击 Build Phases:

xcode4.3.2 下制作ios的framework 库_第24张图片


点击右下角的 “Add Build Phase”:

xcode4.3.2 下制作ios的framework 库_第25张图片


在弹出的菜单中选择 “Add Copy Headers”,添加完成后,展开 “Copy Headers”:

xcode4.3.2 下制作ios的framework 库_第26张图片


点击加号:

xcode4.3.2 下制作ios的framework 库_第27张图片


选中需要暴露的头文件,此处我们选择 “ClassA.h”:

xcode4.3.2 下制作ios的framework 库_第28张图片


点击 Add 按钮完成添加:

xcode4.3.2 下制作ios的framework 库_第29张图片


此时,我们看到导出的文件在 Project 下,这样是不能暴露给别人使用的,将其拖动到 Public 下:

xcode4.3.2 下制作ios的framework 库_第30张图片


关于 Framework 的详细说明参考苹果的在线文档:http://developer.apple.com/library/mac/#documentation/MacOSX/Conceptual/BPFrameworks/Frameworks.html#//apple_ref/doc/uid/10000183-SW1

 


11、编译项目(build),products右键,show in finder 查看结果:

xcode4.3.2 下制作ios的framework 库_第31张图片



 

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

https://github.com/kstenerud/iOS-Universal-Framework  

.sh文件的安装   打开终端,定位到sh文件所在的目录,在当前目录下输入 sudo ./名称.sh  

framework库的使用方法跟“xcode4.3.2   ios5.1 下制作ios的静态库”文章差不多

发布时注意:

If your framework has only code, and no resources (like images, scripts, xibs, core data momd files, etc), you can distribute (your framework).framework to your users and it will just work.

If you have included resources in your framework, you MUST distribute (your framework).embeddedframework.

在编译时,不用担心时device还是模拟器,只要管release还是debug版本


你可能感兴趣的:(xcode4.3.2 下制作ios的framework 库)