自己实现一下Framework制作

有的时候自己想封装一个控件,但是又不想别人在自己的基础上去改动,所以将自己代码编译成静态库,这里用Framework。闲来无事自己也试着尝试一下。
1: 首先创建一个项目

Framework1jpg.jpg
Framework2.jpg

2:然后创建一个名叫Util 的工具类 ,然后声明一个方法 -(void)tool;
在.h中实现


Framework3.jpg

3:下面需要更改一下参数
在TARGETS下选中工程,在Build Settings下更改几个参数。


Framework5.jpg

4:增加armv7s
在Architectures下增加armv7s,并选中。将Build Active Architecture Only 设置为NO。


Framework6.jpg

5:设置Headers


Framework7.jpg

6:将你要公开的头文件拖至Public下,要隐藏的放在Private或者Project下,当然,隐藏的头文件就无法再被引用。

然后需要在Test.h(必须是公开的,否则无法引用)中将你所有要公开的.h引入。


Framework8.jpg

开始打包Framework

第一步:
选中模拟器,编译程序(等待编译成功)
第二步:
选中测试机,编译程序(等待编译成功)
第三步:
在finder中找到framework文件


Framework10.jpg

具体步骤,看下边的图:打开终端,手动输入lipo -create命令,然后是iphoneos下PublicModule的路径(找到iphoneos下PublicModule的文件,拖拽进来),会自动有空格,继续是simulator下PublicModule的路径(同样找到simulator下PublicModule的文件,拖拽进来),也会自动有空格,然后输入-output,然后敲空格,在引入一个新的路径(拖拽进一个新的路径),最后敲回车。这样就完成合并了。

Framework11.jpg

上面这段命令就是把真机和模拟器的PublicModule合并成一个MyNewFrameworktest文件并存放在桌面上的New文件夹下。


Framework12.jpg

这里我们合并的时候会遇到一个error,这是啥原因还真不知道,但是会在和我们-output的文件夹路径并列的地方生成一个.lipo文件,这个.lipo文件我们下边会说到。

吧上面生成的new.lipo 文件 改为PublicModule名字,然后分别找到iphoneos下PublicModule的路径和simulator下PublicModule的路径 替换掉里面的PublicModule

第四步:
将修改后的framework拷贝出来保存,这就是我们最终制作的framework。

Framework13.jpg

然后拿到项目中,引入头文件就可以调用了。

你可能感兴趣的:(自己实现一下Framework制作)