最近公司接到一個需求,需要將已有的一個app的代碼打包成靜態庫,然后放在合作商的app下面,實現一個類似子app的插件。即點擊合作商app里面某個按鈕,即可進入我們的app,這個插件的功能要求跟原有app的功能幾乎完全一樣,那么怎么去實現這個需求了?
剛開始博主接到這個需要,想了想需要解決的問題:
1、圖片資源訪問,因為原有app獲取圖片,都是用的默認的UIImage的方式,那么插件要與原有app的代碼共享,不可能用兩套代碼,相互copy。
2、怎樣將xib打包?
3、插件和原有app的入口不一樣了,該怎樣處理?
4、插件代碼與商戶app中的代碼沖突,該怎樣處理?
那么下面來看看制作靜態庫的具體步驟:
1、打開Xcode,新建workspace,這個是為了管理靜態庫,demo以及原有app工程。新建的workspace名字叫PluginWork。
2、引進已有的工程代碼,在寫文章之前已經做好了一個工程CodeMan。
此時選擇你要引進的工程的工程文件,此處添加的是CodeMan.xcodeproj。如果你看見的效果不似下面的圖,你可以重啟下Xcode后再查看效果。
3、因為我們需要一個測試插件的工程,所以新建一個工程叫PluginDemo。一個注意的地方就是在新建工程時,選擇存儲的文件時需要選擇工程的Group應該為workspace,而不是其他工程。
4、只剩下靜態庫插件了,那么就選中PluginDemo工程,新建選擇Framework$Library,建一個靜態庫叫CodeManPlugin,此時靜態庫的Group應該選擇為PluginDemo。
新建好后的目錄結構如下:
至此,原有工程,插件示例工程以及插件都已經新建好,並布置好了結構,但是還沒有做好各個工程之間的依賴關系,那么下一篇文章將講述各工程之間的依賴,以及如何設置依賴等等。
這一篇就到此。