1、新建一个静态库工程:
2、删除向导所生成工程中的Target:
删除目标前工程状态
删除目标后工程状态
3、删除旧目标对应的工程文件夹:
删除前,注意:此处删除会弹出提示框,要选择“只删除引用”
删除后
4、删除旧目标对应的编译设置(Product菜单| EditScheme命令):
点击左下角的 Manage Schemes按钮:
选中旧的Scheme,点击左下角的减号删除:
删除完成后,点击 OK 返回。
5、增加一个新目标。点击 “AddTarget”:
在弹出的对话框中选择 Mac OS X 下的Bundle:
如上图,给库取一个名字,保持默认的Framework(CoreFoundation),然后点击 Finish。
6、修改新目标的工程设置。选中TARGETS 中对应的目标, Build Settings 页:
在 Architectures 下,将”BaseSDK”改为”Latest iOS”,然后将 “Architectures” 改为 “Standard”:
在 Deployment 下,将 “Mac OS XDeployment Target”改为”Compiler Default”,将 “Targeted DeviceFamily”改为需要的,此处改成了”iPhone/iPad”,同时可以根据需要修改 “iOS DeploymentTarget”,此处改为了 “iOS 3.0”:
在 Linking 中,将 “Dead CodeStripping” 改为 “NO”,将 “Link with Standard Libraries” 改为 “NO”,将“Mac-O Type” 改为 “Relocatable Object File”:
在 Packaging 中,将 “WrapperExtention” 改为“framework”:
7、修改目标的Info。点击Info:
将 “Bundle OS Type Code” 改为“FMWK”(Framework 的意思):
8、修改预编译头:
修改前
修改后
9、向工程中添加一个类(ViewController与 Xib):
结果如下:
10、导出相关文件。选中Target,点击 Build Phases:
点击右下角的 “Add BuildPhase”:
在弹出的菜单中选择 “Add CopyHeaders”,添加完成后,展开 “Copy Headers”:
点击加号:
选中需要暴露的头文件,此处我们选择“ClassA.h”:
点击 Add 按钮完成添加:
此时,我们看到导出的文件在 Project下,这样是不能暴露给别人使用的,将其拖动到 Public 下:
关于 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查看结果:
12、这是手工制作 Framework 的方法,网上有人制作了工程模版,可以直接生成Framework 工程:
https://github.com/kstenerud/iOS-Universal-Framework
.sh文件的安装
framework库的使用方法跟“xcode4.3.2
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 itwill just work.
If you have included resources in your framework, youMUST distribute (yourframework).embeddedframework.
在编译时,不用担心时device还是模拟器,只要管release还是debug版本