xcode如何實現多工程聯編

2021-07-08 22:13:22 字數 1261 閱讀 9015

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

iOS 多工程聯編

我們要在乙個新的專案中要使用到就專案的 以前都是複製貼上。知道有一日知道了多工程編譯之後,開始使用 cocoapods 進行管理 但是一直不太清楚 cocoapods 做了些什麼,今天就嘗試手動建立乙個多工程 workspace 1.使用 xcode 建立乙個工作空間 1.1 儲存到工程資料夾下,儲...

iOS開發之多工程聯編

在ios應用開發中,隨著開發 的深入,專案的規範也越來越高,為了更加方便的管理自定義靜態庫與pods之間的聯絡,我們通常會在在當前的專案工程檔案中引入靜態庫或者其他工程,並與cocoapods配合使用.在說具體操作前 我們先了解一下這種開發方式的好處1.首先建立乙個靜態庫 或者使用自己已有的靜態庫 ...