ios 参考部分

SDK系列-FrameWork的制作(1)

2017-09-19  本文已影响126人  随偑侕荇

SDK系列-iOS FrameWork制作概述
SDK系列-FrameWork的制作(1)
SDK系列-FrameWork的制作(2)

FrameWork的制作(1)

建议阅读:创建.a和.framework静态库,以及Bundle资源文件的使用

网上有很多相关SDK的制作,但大部分都是基础的制作,以及知识点相对比较散;本SDK系列将对SDK制作从基础到应用讲述,主要针对开发过程中遇到的问题进行一个总结。

1.将需要添加暴露的.h放到Public里;

将需要的.h文件暴露到public里;
settng_import.png
若暴露的文件的.h里引入了其他的.h文件,可以继续暴露相关的接口,但不建议这
样;而是采用在.h内使用@class引入类,在.m内再进行导入相关的类文件。
![setting_import2.png](https://img.haomeiwen.com/i1986808/47dc7eb1cf909d1b.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

2.导入Framework库文件

外界导入framework的时候,引入方式:

#import<WXFFrameWork/MRAlterView>

3.更改设置参数

a. Target - build Setting - Architecture 增加 armv7s 和 Valid
Architecture支持的框架


setting_1.png
setting_0.png

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


setting_3.png

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


setting_4.png

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

setting_objc.png

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


setting_merge_error.png

4.framework的合并(merge)
在真机上,模拟器上都cmd+b,然后在本地资源找到真机和模拟器的framework;再通过终端进行合并;还有一种方式,在此不做介绍。

lipo -create /User/...../release-iphoneos/xxx.framework/xxx 
/User/...../release-iphonesimular/xxx.framework/xxx -output ./xxx

合并前:framework的位置:


setting_merge_step1.png

命令:


setting_merge_step2.png

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

setting_merge_step3.png
在上线的时候,建议使用只支持真机的framework;减少内存的占用;

若framework(只支持真机运行)在模拟器上运行,则会报如下相关错误:

setting_objc_error.png

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

上一篇下一篇

猜你喜欢

热点阅读