SDK系列-FrameWork的制作(1)
SDK系列-iOS FrameWork制作概述
SDK系列-FrameWork的制作(1)
SDK系列-FrameWork的制作(2)
FrameWork的制作(1)
建议阅读:创建.a和.framework静态库,以及Bundle资源文件的使用
网上有很多相关SDK的制作,但大部分都是基础的制作,以及知识点相对比较散;本SDK系列将对SDK制作从基础到应用讲述,主要针对开发过程中遇到的问题进行一个总结。
1.将需要添加暴露的.h放到Public里;
将需要的.h文件暴露到public里;

若暴露的文件的.h里引入了其他的.h文件,可以继续暴露相关的接口,但不建议这
样;而是采用在.h内使用@class引入类,在.m内再进行导入相关的类文件。

2.导入Framework库文件
外界导入framework的时候,引入方式:
#import<WXFFrameWork/MRAlterView>
3.更改设置参数
a. Target - build Setting - Architecture 增加 armv7s 和 Valid
Architecture支持的框架


b.Target - Build Settings - Mach-O Type ,将 Mach-O Type 修改为 Static Library。

c.build Active Resource OnlyDebug下设置为YES,release 设置为NO;或者 全部设置为NO。(在系列概述有说明)

d.当framework内引入了第三方库,则需要在工程内添加-ObjC

否则,会报错第三方库的方法没有找到(unrecognized selector);

4.framework的合并(merge)
在真机上,模拟器上都cmd+b,然后在本地资源找到真机和模拟器的framework;再通过终端进行合并;还有一种方式,在此不做介绍。
lipo -create /User/...../release-iphoneos/xxx.framework/xxx
/User/...../release-iphonesimular/xxx.framework/xxx -output ./xxx
合并前:framework的位置:

命令:

合并后,将合并后的WXFFrameWork;再将WXFFrameWork.framework内的WXFFrameWork进行替换掉;再添加到工程内,就可以在真机和模拟器上跑;

在上线的时候,建议使用只支持真机的framework;减少内存的占用;
若framework(只支持真机运行)在模拟器上运行,则会报如下相关错误:

最后,将生成的framework添加到工程里就行了!建议集成验证。