公司最近需求:完整版的項目代碼需要給別人使用,但是不希望別人看到源碼
解答:需要以庫的形式進行封裝冬筒,只暴露出頭文件
語言背景:Object-C
記錄封裝庫的歷程吧恐锣,希望一路順暢??
- 查看了一下靜態(tài)庫,動態(tài)庫與 Framework的定義區(qū)別舞痰。
——>需要把項目代碼封裝成靜態(tài)庫土榴。 - 參考iOS 完整項目制作Framework
- 創(chuàng)建和使用靜態(tài)庫
...
我的操作:
- 創(chuàng)建一個Cocoa Touch Framework
- 把之前除了appdelegate以及ViewController等項目文件導入工程。
自己動手創(chuàng)建靜態(tài)庫粗線的問題:
- 如果直接封裝靜態(tài)庫Cocoa Touch Static Library响牛,后綴為.a玷禽。項目中使用了charts框架,不能識別導入charts.workspace文件
封裝成Cocoa Touch Framework呀打。
- OC類中找不到charts中的文件
預編譯一下论衍,在Products中,右鍵單擊 項目.framework聚磺,在Header文件夾中找到 項目-Swift.h坯台,這個文件中包含有swift的全部類,導入工程中瘫寝。(摸索中蜒蕾,不知道湊效不)
- 之前寫入.pch文件稠炬,可以預編譯的類,不能使用了
在報錯的文件中導入需要的文件類咪啡。這樣太麻煩了首启,有可能是我對封裝過程理解的不夠。之后后話吧/(ㄒoㄒ)/~~
- 最頭痛的問題:由于framework里邊不能導入APPdelegate撤摸,所以之前在APPdelegate中的屬性不能使用毅桃,有關(guān)跳轉(zhuǎn)到根目錄的操作不能完成。現(xiàn)在還沒有解決方法准夷。
原因:由于打包類庫工程不是一個完整項目工程钥飞,所以并沒有AppDelegate等文件,所以涉及到這些的文件要額外處理衫嵌,或改代碼读宙,或適當改變功能。