framework分静态库和动态库,制作方法大致相同,区别在build settings/Linking/Mach-O type的设置上;
动态库:dynamic Library
静态库:static Library动态库是可以动态更新的,具体的方法暂时不用,不放心使用。一般我们用静态库就好了。
添加了文件后,头文件需要加载到build phases的Headers的pulic选项中,如果在private或project中,是不公开的,其他人在用这个framework时,引用头文件会报错。
设置一些编译选项,虽然到现在也不知道具体有什么用:
Architechture/build active architechture only : NO
Linking/dead code stripping : NO当然,为了在外部更好的调用我们的framework库,最好用一个公共的头文件包含我们framework中的所有头文件。
最后就是framework的编译了,执行cmd+B就行,但是我们要编译两个版本,一个simulator,一个真机的,两个版本的区别是在指令集上;
simulator:运行在Mac电脑上,cpu是intel的,指令集是 i386 和 x86_64等。
真机:运行在iphone上,cpu是arm系的,指令集是arm7,arm7s,arm64等。
所以,为了framework能同时使用在真机和simulator上,最后要将两个版本framework中的'目标文件' 合并:
sudo lipo -create 模拟器版本目录/目标文件 真机版本目录/目标文件 -output 目标文件
然后将最后的目标文件随便拷贝到模拟器或真机版目录中,那个版本的framework就可以提供给他人使用了。