Xcode實現多工程編譯

2021-07-10 00:19:48 字數 1261 閱讀 2712

在開發專案時,有時候需要依賴其他的工程(通常是第三方開源的靜態庫工程)。網上有很多第三方開源庫都是以乙個靜態庫工程提供給開發者的(比如codova, cocoapods等)。

其次,我們自己可以建乙個這樣的靜態庫工程,專門用來放自己在實際開發中用的比較多的技術,比如一些幫助類,一些好的技術封裝等等。這樣在開發新專案時,就可以把這個工程引入進來,要用裡面的功能時就可以直接使用,不用找這個工程copy下,那個工程copy下,最後找不到了就更頭疼。只要我們維護好這個靜態庫工程,以後開發就會省事不少。

好啦,步入正題。如果我們的工程要引入靜態庫工程,如何配置簡單實用,以下是個人在實際開發中使用的方法:

場景1:把依賴工程作為主工程的乙個子工程, 這種十分簡單,在此不做介紹。 (蘋果官方文件中有對其的介紹)

場景2:建工作區,把相關的工程匯入到工作區下。在工作區下面的工程都是並列關係。

example :

工作區 :myworkplace

依賴庫工程 :mylib

3.如何在static lib中加入資源。通常,在我們的靜態庫工程中,會包含有資源檔案,比如images, xib, plist等等,但這些資源檔案在編譯過程中是不會加入到.a中的,所以我們需要通過其他的途徑把資源提供給使用者。個人推薦使用bundle,一來bundle會被編譯,xib檔案會成為二進位制檔案,這樣外界就無法檢視xib的內容,其次也是乙個很好的封裝,很方的插入或刪除資源,這也是目前大多數sdk提供商採用的普通方式。 方法:在mylib中新增乙個target,選擇「os x」下的「framework & library」,選擇「bundle」。進入mylibbundle的「build setting」設定頁面,修改「base sdk」為 「latest ios(ios latestversion)」。然後就可以往mylibbundle裡面加入你想要的資源了。

在mylib**中要引用mylibbundle中的資源檔案時,需要這樣使用:

#define mylibbundle_name @ "mylibbundle.bundle"

ponent: mylibbundle_name]

#define mylibbundle [nsbundle bundlewithpath: mylibbundle_path]

xib :

self = [super initwithnibname:@"mylibviewcontroller" bundle:mylibbundle];

image :

+ (uiimage *)getimagewithname:(nsstring *)pimagename

xcode如何實現多工程聯編

在開發專案時,有時候需要依賴其他的工程 通常是第三方開源的靜態庫工程 網上有很多第三方開源庫都是以乙個靜態庫工程提供給開發者的 比如codova,cocoapods等 其次,我們自己可以建乙個這樣的靜態庫工程,專門用來放自己在實際開發中用的比較多的技術,比如一些幫助類,一些好的技術封裝等等。這樣在開...

xcode如何實現多工程聯編

在開發專案時,有時候需要依賴其他的工程 通常是第三方開源的靜態庫工程 網上有很多第三方開源庫都是以乙個靜態庫工程提供給開發者的 比如codova,cocoapods等 其次,我們自己可以建乙個這樣的靜態庫工程,專門用來放自己在實際開發中用的比較多的技術,比如一些幫助類,一些好的技術封裝等等。這樣在開...

Python 多工之協程(3)實現多工

學習理解迭代器和生成器之後,開始使用協程來實現多工 當乙個函式中包含yield關鍵字,那麼這個函式就不再是乙個普通的函式,它的返回值是乙個生成器物件。我們可以使用next 或send 函式來啟動喚醒生成器物件,當程式第一次執行到yield時,程式暫停執行,並返回yield後邊跟的變數,當再次喚醒時,...