簡(jiǎn)單記錄一下用Xcode8生成靜態(tài)Framework的步驟辐董,因?yàn)楸容^繁瑣,容易出錯(cuò),特此記錄一下:
1.創(chuàng)建項(xiàng)目
如圖選項(xiàng)所示:
2.新建bundle用來(lái)存放Xib和png等資源文件(注意名字不能和靜態(tài)庫(kù)重復(fù))
因?yàn)閕OS沒(méi)有這一項(xiàng),所以需要選擇macOS盼忌,然后搜索bundle
3.設(shè)置frameWork為靜態(tài)庫(kù)
注意圖中左側(cè)選擇的是黃色小箱子,然后在build-setting中搜索mach掂墓,將設(shè)置項(xiàng)更改為static library谦纱。默認(rèn)是Dynamic library
4.設(shè)置新建bundle為IOS同時(shí)關(guān)閉bitcode
剛才新建的bundle是針對(duì)macOS的,所以需要我們手動(dòng)修改BaseSDK君编,如圖跨嘉,默認(rèn)是macOS
5.新建項(xiàng)目,ViewController + Xib
特別注意的是:如果VC中需要用圖片吃嘿,不要再Xib中設(shè)置祠乃,因?yàn)榈綍r(shí)候會(huì)找不到路徑而無(wú)法展示梦重,所有圖片都需要純代碼設(shè)置, 設(shè)置圖片和LoadXib方式一樣:
6.將Xib和png放入bundle中
7.設(shè)置Bundle的COMBINE_HIDPQ_IMAGES為NO
否則bundle中的png圖片經(jīng)過(guò)編譯打包會(huì)變成tiff的文件亮瓷,進(jìn)而導(dǎo)致對(duì)應(yīng)圖片找不到
8. 設(shè)置靜態(tài)庫(kù)暴露的頭文件
將需要暴露出來(lái)的.h文件從project中拖到Public中
9.生成靜態(tài)庫(kù)framework和bundle文件
分別選中左下角圖中靜態(tài)庫(kù)和bundle文件琴拧,然后run,然后open in finder嘱支,就會(huì)得到兩個(gè)文件蚓胸,然后將兩個(gè)文件拖入項(xiàng)目中
10.項(xiàng)目中設(shè)置
將以上生成的靜態(tài)庫(kù)和bundle文件拖入項(xiàng)目中后:
手動(dòng)將剛才生成的framework拖入進(jìn)來(lái)
11.引入頭文件,調(diào)用頭文件
手機(jī)上出現(xiàn)了靜態(tài)庫(kù)中封好的帶界面的SDK除师!
Have Fun沛膳!
如果在引入static library之后,出現(xiàn)報(bào)錯(cuò)的情況:
1汛聚、unrecognized selector sent to instance
Terminating app due to uncaught exception 'NSInvalidArgumentException'
出現(xiàn)上述情況可能是因?yàn)樾枰{(diào)整如下設(shè)置:
2锹安、如果出現(xiàn)
Undefined symbols for architecture arm64:"_OBJC_CLASS_$_FBSession",referencedfrom:someFile
ld:symbol(s) not found for architecture arm64
這時(shí)很大可能是因?yàn)殪o態(tài)庫(kù)編譯出錯(cuò)。
可以進(jìn)入
中去查看是否缺少了某些.m文件倚舀,導(dǎo)致的錯(cuò)誤