結(jié)合CocoaPods談iOS私有庫(kù)的三種管理方式

引言:本文主要介紹了iOS私有庫(kù)的三種管理方式。在多產(chǎn)品線的情況下,包括業(yè)務(wù)層、自定義的控件、自定義的工具類,如日期處理類、日歷、加密類等等,甚至包括App的基礎(chǔ)框架都是可以考慮復(fù)用,這樣一來(lái)有效的提高了編碼的效率,讓開發(fā)人員專注主業(yè)務(wù)的開發(fā),不在為基礎(chǔ)的框架、基礎(chǔ)的類重復(fù)的“造輪子”。


目錄

1、第三方庫(kù)

2、項(xiàng)目中的私有庫(kù)

2.1 本地管理

2.2 Git遠(yuǎn)程管理

2.3 項(xiàng)目組服務(wù)器管理

3、svn下的私有庫(kù)管理

3.1 如何打tag進(jìn)行版本控制

3.2 如何實(shí)現(xiàn)指定目錄管理


1、第三方庫(kù)

可以使用Cocoapods全權(quán)管理,配置Podfile,最后pod install。

AFNetworking、SDWebImage都可以用這種方式管理。

2、項(xiàng)目中的私有庫(kù)

主要包括自定義的控件,自定義的工具類,如日期處理類、日歷、加密類等等。

有以下幾種方式進(jìn)行管理:

一、本地管理

將私有庫(kù)存在本地,其他項(xiàng)目有需要時(shí)可以選擇拷貝,不過(guò)我們的目的是希望所有的私有庫(kù)可以形成組件化,所以這樣不利于統(tǒng)一管理。

另外,可以將私有庫(kù)結(jié)合Cocoapods進(jìn)行管理,具體的步驟如下:

1.1 新建一個(gè)SingleView項(xiàng)目,將私有庫(kù)添加至項(xiàng)目中,此時(shí)項(xiàng)目直接Run按道理應(yīng)該是可以運(yùn)行成功的。

1.2 在項(xiàng)目的根目錄(工程目錄),新建podspec文件 項(xiàng)目名.podspec

Pod::Spec.new do |s|

s.name? ? ? ? = "項(xiàng)目名"

s.version? ? ? = "1.0.1" //版本號(hào)

s.summary? ? ? = "desc" //描述

s.homepage? ? = "https://coding.net/u/xxx/p/項(xiàng)目名/git"

s.license? ? ? = { type: 'MIT', file: 'LICENSE' }

s.author? ? ? = { "xx" => "xx@email.com" }

s.platform? ? = :ios, "8.0"

s.source? ? ? = { :git => "/Users/xx/項(xiàng)目名" }

s.source_files? = "Class/*.{h,m}"

s.requires_arc = true

end

PS:也可以使用命令 pod spec create A****t

前者可以自定義字段、字段值,后者則生成一個(gè)模板

1.3 最后pod lib lint,可能會(huì)報(bào)錯(cuò),可以使用

pod lib lint --verbose查看具體的錯(cuò)誤原因

pod lib lint --allow-warnings忽略警告

pod lib lint --use-libraries解決系統(tǒng)SDK頭文件引用錯(cuò)誤

1.4 新建工程測(cè)試

target '新建項(xiàng)目名稱' do

# 參數(shù)對(duì)應(yīng)1.2配置文件

pod '項(xiàng)目名', :path => '/Users/xx/項(xiàng)目名'

end

參考:http://m.itdecent.cn/p/5b950e89e1ac


二、Git遠(yuǎn)程管理

1、做好準(zhǔn)備工作

新建A****Y文件夾,準(zhǔn)備以下四個(gè)文件,其中LICENSE和A****Y.podspec文件不可或缺

依賴庫(kù)描述文件(.podspec)的名稱需和文件夾名稱保持一致

2、配置好遠(yuǎn)程倉(cāng)庫(kù),這里使用的是Coding。

進(jìn)入終端,cd到當(dāng)前目錄,執(zhí)行

git clone https://git.coding.net/x****7/A****Y.git

此時(shí)創(chuàng)建一個(gè)空的A****Y目錄

PS:第1步和第2步不分先后順序

3、添加代碼到遠(yuǎn)程倉(cāng)庫(kù)(Coding)

git add -A

git commit -m "add pod files"

git remote add A****Y https://git.coding.net/x****7/A****Y.git

git push A****Y master

4、cd ~/.cocoaPods/repo目錄,第3步clone了一份A****Y

將spec repo文件上傳

pod repo push A****Y A****Y.podspec --sources='https://git.coding.net/x****7/A****Y.git' --allow-warnings

PS:直接執(zhí)行 pod repo push A****Y A****Y.podspec報(bào)錯(cuò)

5、pod serach A****Y

出現(xiàn)版本號(hào)、主頁(yè)等信息說(shuō)明依賴添加成功。

下面就可以像使用AFNetworking一樣調(diào)用私有庫(kù)了。

6、在新建的項(xiàng)目目錄下添加Podfile文件

內(nèi)容如下:

source 'https://github.com/CocoaPods/Specs.git'

source "https://git.coding.net/x****7/A****Y.git"

platform :ios, '8.0'

target 'TestUnit' do

pod 'AFNetworking', '= 3.0.0'

pod 'A****Y', '= 1.0.1'

end


三、項(xiàng)目組服務(wù)器管理

代碼統(tǒng)一放在本地服務(wù)器上,使用Cornerstone進(jìn)行代碼的維護(hù)管理工作。

如何結(jié)合SVN和Cocoapods對(duì)項(xiàng)目中的私有庫(kù)進(jìn)行管理呢?具體的步驟如下:

感謝 clarkda 為cocoapods 提供了這個(gè) repo-svn 的 svn 支持插件:

根據(jù) https://github.com/clarkda/cocoapods-repo-svn 上的說(shuō)明

gem install cocoapods-repo-svn 來(lái)安裝 repo-svn 插件。(PS:會(huì)報(bào)權(quán)限問(wèn)題,出現(xiàn)的Error可以忽略,改成sudo gem install cocoapods-repo-svn)

pod repo-svn add my-svn-repo http://svn-repo-url 添加你的私有 svn 項(xiàng)目倉(cāng)庫(kù)

pod repo-svn update my-svn-repo 更新項(xiàng)目

pod repo-svn remove my-svn-repo 刪除項(xiàng)目

1、準(zhǔn)備好私有庫(kù)

Readme文件、Class文件夾、podspec文件

上傳到服務(wù)器,指定SVN地址。

2、添加你的私有 svn 項(xiàng)目倉(cāng)庫(kù)

pod repo-svn add my-svn-repo http://svn-repo-url?

pod repo-svn update my-svn-repo 更新項(xiàng)目

3、在新建的項(xiàng)目目錄下添加Podfile文件

內(nèi)容如下:


3、svn下的私有庫(kù)管理

3.1 如何打tag進(jìn)行版本控制

需求場(chǎng)景:

項(xiàng)目經(jīng)理:有新的項(xiàng)目要來(lái),各項(xiàng)目組準(zhǔn)備下,新項(xiàng)目完全可以借鑒之前的項(xiàng)目中的私有庫(kù)進(jìn)行開發(fā),比如:一些工具類、字體、顏色、基礎(chǔ)框架、自定義的控件等等。

項(xiàng)目組成員有兩種方式復(fù)用之前的代碼,一種是直接搬代碼,明白的講就是拷貝,這是個(gè)細(xì)活,要求對(duì)項(xiàng)目的結(jié)構(gòu)非常了解,否則很容易出錯(cuò);第二種方式

是借助工具對(duì)私有庫(kù)進(jìn)行統(tǒng)一調(diào)配,這里介紹下Cornerstone+Cocoapods的方式對(duì)私有庫(kù)的管理:

基礎(chǔ)版可參考:http://m.itdecent.cn/p/cbb8931499da

本文重點(diǎn)介紹如何做到版本控制

1、本地項(xiàng)目目錄創(chuàng)建tags目錄并上傳至SVN



2、在cornrstone的控制臺(tái),選到工程路徑注意不是本地的,是svn服務(wù)器的,然后選擇頂部tag選項(xiàng)


3、經(jīng)過(guò)以上步驟,在SVN服務(wù)器trunk/項(xiàng)目名稱/tags應(yīng)該多個(gè)一個(gè)“1.0.1”的目錄

4、調(diào)用


5、新建項(xiàng)目,執(zhí)行pod install即可

3.2 如何實(shí)現(xiàn)指定目錄管理

需求場(chǎng)景:

如果只需要其中的一個(gè)或幾個(gè)私有庫(kù),怎么辦?

1、podspec文件中指定subspec

指定source_files、public_header_files、dependency


2、修改podspec


最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容