寫在前面
workspace:顧名思義就是工作空間剑肯,使用過eclipse工具做過Android開發(fā)的童鞋肯定對工作空間并不陌生剪勿。簡單點來理解就是多個項目的集合历极,我們常用的cocoapods就是使用的workspace。對于SDK開發(fā)的童鞋來說,workspace的使用是十分有必要的倦蚪,因為母包的開發(fā)會涉及到渠道。Android可以使用Android library來創(chuàng)建一個Module边苹,iOS則可以使用workspace來進(jìn)行項目管理陵且。
從本文可以學(xué)到的知識點
1.工作空間workspace中建立多個項目
2.workspace中主工程引用靜態(tài)庫或動態(tài)庫
3.靜態(tài)庫資源文件(圖片、xib、plist等)打包成bundle
1.工作空間workspace多項目管理
在桌面新建一個workspace的文件夾慕购,并新建一個workspace放到該文件夾中聊疲,用來存放多個項目。接下來我們的所有工程都會存放在該目錄下沪悲。
接下來获洲,打開Appgame.xcworkspace工作空間,并向該工作空間中添加一個靜態(tài)庫項目殿如,一個動態(tài)庫項目以及一個app主工程項目贡珊。
分別創(chuàng)建CommentStatic靜態(tài)庫、CommentFramework動態(tài)庫以及Appgame主工程項目涉馁,都存放在桌面的workspace文件夾下门岔。
File -> New -> Project... -> Cocoa Touch Static Library
File -> New -> Project... -> Cocoa Touch Framework
File -> New -> Project... -> Single View Application
添加方式一:創(chuàng)建CommentFramework靜態(tài)庫項目,項目放在桌面的workspace文件夾下烤送,并添加到 我們創(chuàng)建的Appgame.xcworkspace工作空間中寒随。
注意:Group也選擇工作空間,你自己可以選擇不同的來看一下效果帮坚。
添加方式二:新建的項目存放在桌面的workspace文件夾下妻往,然后再添加到Appgame.xcworkspace中。這里不用添加到任何工作空間中试和。
然后添加到工作空間中:
桌面workspace文件夾下的截圖以及通過Appgame.xcworkspace打開的項目截圖:
第一點到此結(jié)束
2.workspace中主工程引用靜態(tài)庫或動態(tài)庫
添加.a或Framework庫引用
選中主工程蒲讯,添加依賴庫。是主工程需要引用靜態(tài)庫和動態(tài)庫灰署,所有是在主工程中引入靜態(tài)庫與動態(tài)庫判帮。
主工程(Appgame) -> TARGETS -> Build Phases -> Link Binary With Libraries
添加頭文件
添加資源文件(自定義Bundle或存放在mainBundle下的)
對于資源文件的引用遇到了一點問題,等待解決「然現(xiàn)在可以直接把資源文件放入主工程晦墙。下面就介紹如何制作Bundle TARGETS
3.靜態(tài)庫資源文件(圖片、xib肴茄、plist等)打包成bundle
**添加 編譯 Bundle 的TARGETS
修改 base SDK
編譯資源
項目中使用
在靜態(tài)庫和動態(tài)庫簡單的分別創(chuàng)建 一個打印方法晌畅,在主工程中進(jìn)行調(diào)用。
對于頭文件的引用也可以直接將頭文件放出主工程中寡痰。自定義Bundle的簡單調(diào)用可自行Google抗楔。
實戰(zhàn)截圖:
關(guān)于動態(tài)庫的加載方式可以看我之前的文章
iOS開發(fā)-動態(tài)庫的加載方式(一)編譯時添加
iOS開發(fā)-動態(tài)庫的加載方式(二)以資源文件(NSBundle)的形式添加
寫在最后
假如你正在做一個SDK的工作,需要在動態(tài)庫中包含framework拦坠,你可能還是存在疑問连躏。那么,請先移步如何判斷framework是動態(tài)庫或靜態(tài)庫以及framework靜態(tài)庫轉(zhuǎn).a靜態(tài)庫