使用Xcode建立的工程Project是單獨分開的,若是想要幾個工程同時存在,能夠經過建立工做空間Workspace。工做空間是對各工程的集合,工程文件名的後綴爲.xcodeproj,工做空間文件名的後綴爲.xcworkspace。xcode
在公司中有些核心代碼,咱們不能提供源代碼,而又須要複用給其它公司、團隊等使用,這時候就須要將此部分的代碼封裝成靜態連接庫。 庫是沒有main函數程序代碼的集合,除了靜態連接庫還有動態連接庫,它們的區別是靜態連接庫能夠編譯到執行代碼中,應用程序能夠在沒有靜態連接庫的環境下運行;動態連接庫不能編譯到執行代碼中,應用程序必須在有連接庫文件的環境下運行。app
在Xcode中建立靜態連接庫的過程爲:在Xcode中選擇菜單File->New->Project…,
在打開的對話框中選擇【Framework & Library】中的【Cocoa Touch Static Library】
以下圖:框架
須要在【Build Phases】中的Headers中將.h文件暴露出來。
使用靜態庫須要給使用者提供.a 和 .h 文件,若有須要,還需配置環境變量。less
爲了方便使用,蘋果提供了框架,Framework是資源的集合,是將靜態庫和其頭文件包含到一個結構中,讓Xcode能夠方便地把它歸入到你的項目中。函數
在Xcode中建立靜態連接庫的過程爲:在Xcode中選擇菜單File->New->Project…,
在打開的對話框中選擇【Framework & Library】中的【Cocoa Touch Framework】
以下圖:ui
須要在【Build Phases】中的Headers中將.h文件暴露出來。
若是是製做靜態庫,須要在在【Build Setting】的【Linking】 中【Mach-O Type】選擇靜態庫Static Library。spa
工做空間是多個工程的集合。咱們能夠把靜態庫、Framework、工程一塊兒集成到一個工做空間中。code
建立工做空間的流程是:在Xcode中選擇菜單File->New->Workspace…blog
將工程添加進工做空間,在Xcode中選擇菜單File->Add Files to "xxx"... 以下圖:ip
添加的框架進工做空間須要引用一下,在【Build Phases】中的Link Binary With Libraries 添加Framework。以下圖:
若是在使用Framework的時候,提示以下錯誤:
dyld: Library not loaded: @rpath/DemoFramework.framework/DemoFramework Referenced from: /var/containers/Bundle/Application/3B829604-B6E1-4C68-966C-83AEB20833A7/Demo.app/Demo Reason: image not found
是由於Framework設置成了動態庫,在【Build Setting】的【Linking】 中【Mach-O Type】選擇靜態庫Static Library。
有些複雜的項目須要用到模塊開發,就須要工程和Framework、靜態庫的相互結合。