今天去面試,結(jié)果是一家做sdk的公司嚎花,一下子斷了思路寸痢,怎么封裝成framework,不暴露源代碼紊选,回來了馬上研究一波啼止。
-
打開Xcode,新建工程兵罢。
不要選擇“Application”献烦,選擇“Framework & Library”。選擇第一個(gè)趣些,然后Next仿荆。
1.png - 創(chuàng)建功能類。
這里我創(chuàng)建一個(gè)繼承自NSObject的SayHello類
#import <Foundation/Foundation.h>
@interface SayHello : NSObject
-(void)sayHello;
@end
-
更改參數(shù)
在TARGETS下選中工程坏平,在Build Settings下更改幾個(gè)參數(shù)拢操。
2.png - 增加armv7s
在Architectures下增加armv7s,并選中舶替。將Build Active Architecture Only 設(shè)置為NO
- 設(shè)置Headers
將你要公開的頭文件拖至Public下令境,要隱藏的放在Private或者Project下,當(dāng)然顾瞪,隱藏的頭文件就無法再被引用舔庶。
然后需要在MySDK.h(必須是公開的,否則無法引用)中將你所有要公開的.h引入陈醒。
打包方法
選中模擬器惕橙,編譯程序
選中測(cè)試機(jī),編譯程序
-
在finder中找到framework文件
選擇framwork文件钉跷,點(diǎn)擊右鍵show in finder -
找到找到下圖中所示的Test文件弥鹦,一個(gè)是Debug-iphoneos(真機(jī))下的,一個(gè)是Debug-iphonesimulator(模擬器)下的爷辙。
9140C02A-215D-4B9F-86CD-B05A1BF527E1.png -
通過終端命令將兩個(gè)framework合為一個(gè)模擬器和真機(jī)都可使用的framework棺棵。
打開終端盈滴,手動(dòng)輸入畫紅線的lipo -create命令,然后綠線是iphoneos下frameworkTest的路徑(找到iphoneos下frameworkTest的文件,拖拽進(jìn)來)轨域,會(huì)自動(dòng)有空格蠢棱,紫線是simulator下frameworkTest的路徑(同樣找到simulator下frameworkTest的文件硅急,拖拽進(jìn)來)赊窥,也會(huì)自動(dòng)有空格禀忆,然后輸入-output,然后敲空格坯屿,在引入一個(gè)新的路徑(拖拽進(jìn)一個(gè)新的路徑)油湖,最后敲回車。這樣就完成合并了领跛。
注意:合并完成后會(huì)出現(xiàn)一個(gè)lipo格式的文件乏德。
把它的文件名修改成MySDK,然后覆蓋之前的MySDK,就得到了framework文件.