因為最近我們公司的一個客戶要求我們使用swift編寫程序並且將API封裝成framework的形式提供給他們,所以我就開始了swift實踐之路。
程序編寫完之后,我就琢磨怎么封裝成framework的形式,因為swift不像OC,分.h和.m的形式,那么只暴露.h出來即可,而swift是所有實現都在一個文件里,會不會把源碼暴露啊?懷着這個疑問,今天上午查了資料自己實踐了一下,搞定。
第一步:Xcode->File->New->Project,選擇Cocoa Touch Framework,語言選擇swift,然后Deployment Target我選擇了最低8.0
可以看到默認生成了一個.h和plist文件,這個.h文件里你可以導入你使用的一些OC文件,因為framework里不支持橋接文件,而OC的文件必須得import,所以就有了這么一個.h文件啦,如果你沒用到任何OC文件,那就什么都不用導入了。info.plist就是正常的配置文件啦。
第二步:把你之前寫好的swift文件都拖進來,在這里我拖入了我之前已經寫好的藍牙模塊文件,統一放在BleModule文件夾下
第三步:Edit Scheme->Run->Build Configuration->Debug/Release,分別對應測試環境和生產環境
然后Command+Build,編譯即可生成我們要的framework了,右鍵Show in Finder,就找到生成的framework了。
接下來測試一下framework能否使用:
第一步:新建一個工程,我的工程命名為HeHaSwiftDemo,將剛才生成的framework拷貝到新工程路徑下
第二步:點擊工程->Target->General,然后在Embedded Binaries和Linked Frameworks and libiaries選項卡下將剛才路徑下的framework導進來。
第三步:編譯一下工程沒有問題,然后就可以使用了,在需要使用framework的地方import一下,這個BleAPI就是我的framework的名稱,然后就能使用啦。
點進去看一下會發現里面的文件都是你暴露出的帶有public修飾符的函數,代理方法,屬性變量以及一些宏定義等,而具體的實現是不可見的,哈哈,我的擔心是白擔心
最后,項目已經放到了我的github上,鏈接:https://github.com/krisouljz/LearningGit.git