SDK系列-FrameWork的制作(1)

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里;
settng_import.png
若暴露的文件的.h里引入了其他的.h文件,可以繼續(xù)暴露相關(guān)的接口,但不建議這
樣;而是采用在.h內(nèi)使用@class引入類,在.m內(nèi)再進(jìn)行導(dǎo)入相關(guān)的類文件。
![setting_import2.png](http://upload-images.jianshu.io/upload_images/1986808-47dc7eb1cf909d1b.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

2.導(dǎo)入Framework庫文件

外界導(dǎo)入framework的時(shí)候,引入方式:

#import<WXFFrameWork/MRAlterView>

3.更改設(shè)置參數(shù)

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下設(shè)置為YES,release 設(shè)置為NO;或者 全部設(shè)置為NO。(在系列概述有說明)


setting_4.png

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

setting_objc.png

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


setting_merge_error.png

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的位置:


setting_merge_step1.png

命令:


setting_merge_step2.png

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

setting_merge_step3.png
在上線的時(shí)候,建議使用只支持真機(jī)的framework;減少內(nèi)存的占用;

若framework(只支持真機(jī)運(yùn)行)在模擬器上運(yùn)行,則會(huì)報(bào)如下相關(guān)錯(cuò)誤:

setting_objc_error.png

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

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容