做了好长时间的SDK,一开始是做成静态库.a文件,网上的教程也不少,这里不说了。 下面说说做xxx.framework的方法,其实网上也又很多这方面的教程,不过一般都是制作的伪framework,不是真正的framework框架,也就是Fake Framework,是真实面目其实是bundle。网上讲的很多,我就直接从别处搬来了。 Fake Framework制作步骤: 1、新建一个静态库工程:
2:取自己喜欢的名字:
3、删除向导所生成工程中的 Target:
4、删除TestFrameWork对应的工程文件夹:
5:删除bulid 关连项
选择左下角Manager Scheme
选中 Scheme,点击左下角的减号删除:
删除完成后,点击 OK 返回。 6、增加一个新目标。点击 “Add Target”
在弹出的对话框中选择 Mac OS X 下的 Bundle:
如上图,给库取一个名字,保持默认的 Framework(CoreFoundation),然后点击 Finish。 修改新目标的工程设置。选中 TARGETS 中对应的目标, Build Settings 页:
7.target 上右键get Info 在Build Settings下面设置下面的几项内容 a.Base SDK选择Latest IOS(IOS 5.1) b.Build Active Architecture Only选择NO c.Drad Code Stripping设置为NO d.Mach-O Type 为Relocatable Object File e.Link With Standard Libraries为NO f.Wrapper Extension修改为:默认的bundle改成framework g.在Architectures选项选择Standard(armv6 armv7) (不这样编译会报错) h.工程Info中将Bundle OS Type code的值BNDL改为:FMWK 在 Deployment 下,将 “Mac OS X Deployment Target”改为”Compiler Default”, 将 “Targeted Device Family”改为需要的,此处改成了”iPhone/iPad”, 同时可以根据需要修改 “iOS Deployment Target”,此处改为了 “iOS 3.0”: 8、修改预编译头:就是注释掉全部
9、向工程中添加一个类:
10、在myTestClass。h添加一个方法testFounction:
11、在myTestClass。m中实现方法testFounction:
12.打开Build Phases选项卡,右下角点击Add Build Phase–Add copy Headers,然后界面就会多出来一个Copy Headers的菜单,然后添加源文件。完成后如图所示:(Compile Sources 添加.m文件) 点击右下角的 “Add copy Headers”:
添加完成后,展开 “Copy Headers”:点击加号:
选中需要暴露的头文件,此处我们选择 “myTestClassA.h”:
点击 Add 按钮完成添加:此时,我们看到导出的文件在 Project 下,这样是不能暴露给别人使用的,将其移动到 Public 下:
12.然后Build & Run ,
里成功很近了 ,哈哈! 13.下面随便把我们在上面生成的framework 导入到其他的工程就可以使用了,哈哈!
找到刚才我们FrameWork 的工程目录的Bulid->Products->Debug-iphonesimuator->TestFrameWork.farmework
14.下在你想用的地方导入头文件 #import
用法如下: myTestClass* vc1=[[myTestClass alloc]init]; [vc1 testFounction]; [vc1 release]; 15.Bulid&Run