SDK系列-iOS FrameWork制作概述
SDK系列-FrameWork的制作(1)
SDK系列-FrameWork的制作(2)
FrameWork的制作(1)
建議閱讀:創(chuàng)建.a和.framework靜態(tài)庫,以及Bundle資源文件的使用
網(wǎng)上有很多相關(guān)SDK的制作,但大部分都是基礎(chǔ)的制作,以及知識(shí)點(diǎn)相對(duì)比較散;本SDK系列將對(duì)SDK制作從基礎(chǔ)到應(yīng)用講述,主要針對(duì)開發(fā)過程中遇到的問題進(jìn)行一個(gè)總結(jié)。
1.將需要添加暴露的.h放到Public里;
將需要的.h文件暴露到public里;

若暴露的文件的.h里引入了其他的.h文件,可以繼續(xù)暴露相關(guān)的接口,但不建議這
樣;而是采用在.h內(nèi)使用@class引入類,在.m內(nèi)再進(jìn)行導(dǎo)入相關(guān)的類文件。

2.導(dǎo)入Framework庫文件
外界導(dǎo)入framework的時(shí)候,引入方式:
#import<WXFFrameWork/MRAlterView>
3.更改設(shè)置參數(shù)
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下設(shè)置為YES,release 設(shè)置為NO;或者 全部設(shè)置為NO。(在系列概述有說明)

d.當(dāng)framework內(nèi)引入了第三方庫,則需要在工程內(nèi)添加-ObjC

否則,會(huì)報(bào)錯(cuò)第三方庫的方法沒有找到(unrecognized selector);

4.framework的合并(merge)
在真機(jī)上,模擬器上都cmd+b,然后在本地資源找到真機(jī)和模擬器的framework;再通過終端進(jìn)行合并;還有一種方式,在此不做介紹。
lipo -create /User/...../release-iphoneos/xxx.framework/xxx
/User/...../release-iphonesimular/xxx.framework/xxx -output ./xxx
合并前:framework的位置:

命令:

合并后,將合并后的WXFFrameWork;再將WXFFrameWork.framework內(nèi)的WXFFrameWork進(jìn)行替換掉;再添加到工程內(nèi),就可以在真機(jī)和模擬器上跑;

在上線的時(shí)候,建議使用只支持真機(jī)的framework;減少內(nèi)存的占用;
若framework(只支持真機(jī)運(yùn)行)在模擬器上運(yùn)行,則會(huì)報(bào)如下相關(guān)錯(cuò)誤:

最后,將生成的framework添加到工程里就行了!建議集成驗(yàn)證。