筆者找了很多SDK封裝的資料,沒有一個講的很完全和詳細一點的資料,所以決定分享一篇詳細的經(jīng)驗出來,希望能有助于開發(fā)人員封裝自己的SDK
筆者QQ:1711647013
注:本文只針對OC語言封裝,Swift敬請期待下一期
一.庫的介紹
強調幾點:
?第一 ?(.dylib庫文件) == (.tdb庫文件)
第二. 自己建立的.framework是靜態(tài)庫,而系統(tǒng)的.framework是動態(tài)庫
第三. .a文件和.framework文件的區(qū)別:
? ? ? ? ? 區(qū)別一: .a是一個純二進制文件,.framework中除了有二進制文件之外還有很多資源文件
? ? ? ? ? 區(qū)別二: .a不能直接使用,至少要有.h文件配合,.framework文件可以直接使用
? ? ? ? ? 區(qū)別三: ?.framework == .a + .h + sourceFile
二. 生成.framework
步驟
1.利用Xcode,新建工程
自己命名一個工程名字,我命名為:WeChatSDK
2.設置參數(shù)
3.新建類,在類中編寫代碼(我這里新建WeChatSpay類,并在類中添加一個支付方法)
4.設置Headers
將你要公開的頭文件(.h文件)拖至Public下,通常都是把頭文件放在Public下
要隱藏的放在Private或者Project下,當然,隱藏的頭文件就無法再被引用。
5.修改Debug模式為Release,選擇close
6. 打包Framework(這里只講一種方法)
選中模擬器, command + b
選中真機,command + b
打開終端命令行:輸入lipo -create
7. 使用Framework
新建工程(注意和上面新建工程不一樣的地方),拷貝上一步最后合成的framework到工程中
三. ?生成.a
1.新建工程(自己命名,這里還以WeChatSDK為例)
2.配置參數(shù)
3.創(chuàng)建bundle文件,名字一般與工程名相同(如果靜態(tài)庫有資源文件要使用,必須放入.bundle文件)
4.準備工作已經(jīng)完成,準備寫代碼
5.打包.a文件
選中模擬器, command + b
選中真機,command + b
合成:(如下只給合成的界面,具體不懂得可以看.framework中合成的步驟)
6. 使用.a的SDK
總結:筆者使用的Xcode是8.2.1版本,如果有偏差導致找不到方法,請?zhí)砑游恼麻_頭的聯(lián)系方式尋求幫助