iOS私有庫創(chuàng)建(從0到1)

cocoapods.jpg

前言

因?yàn)楣卷?xiàng)目中引入私有庫很久了,一直想寫一篇關(guān)于創(chuàng)建私有庫的步驟總結(jié)。這幾天正好比較閑,在同事Bartholomew大熊的幫助下,完成了這篇文章。
具體私有庫是什么,就不再贅述,直接開始創(chuàng)建私有庫啦。

下面我們就直接開始!Go!

詳細(xì)步驟

1.創(chuàng)建私有庫
首先我們要?jiǎng)?chuàng)建兩個(gè)私有倉庫。一個(gè)倉庫是存放代碼的倉庫JATestKit(帶上README.md和LICENSE),一個(gè)是索引庫JAPrivateRepos,兩個(gè)庫的關(guān)系就好比AFNetworking和cocoapod的關(guān)系,換句話說,你的索引庫對于你的代碼庫來說,就相當(dāng)于cocoapod,你創(chuàng)建的所有代碼庫都存放在索引庫里。
因?yàn)镚itHub的私有庫需要收費(fèi),我這里使用的是coding.net創(chuàng)建的私有庫。
創(chuàng)建私有庫的步驟在這里就不詳細(xì)寫了......因?yàn)樘唵瘟藒

創(chuàng)建私有代碼庫和索引庫.png

創(chuàng)建完成之后,我們先不管代碼庫。先將索引庫添加到本地的cocoapods/repos目錄下。
到在終端中執(zhí)行如下命令

cd .cocoapods/repos
pod repo add JAPrivateRepos https://git.coding.net/Plotac/JAPrivateRepos.git

即pod repo add +你的索引庫名稱 +索引庫地址

回車,出現(xiàn)如下所示就成功辣~

clone索引庫.png

此時(shí)可以進(jìn)入.cocoapods/repos目錄下驗(yàn)證一下是否創(chuàng)建成功

驗(yàn)證已有JAPrivateRepos啦.png

今后你的所有私有庫,在不更改索引庫的情況下,都會在這個(gè)文件里。
Nice!Next!

2.創(chuàng)建Pod項(xiàng)目工程文件
接下來要?jiǎng)?chuàng)建podspecs代碼庫 ,代碼如下

pod lib create JATestKit_Local

即pod lib create +代碼庫名稱。
我這里把它放在了桌面。
執(zhí)行命令,成功后,桌面就會出現(xiàn)
JATestKit_Local文件夾了。

緊接著,終端上會出現(xiàn)幾個(gè)問題,如下圖

問題.png

全部回答完之后,會自動(dòng)執(zhí)行pod install命令創(chuàng)建項(xiàng)目并生成依賴。若出現(xiàn)下圖所示,說明Pod項(xiàng)目工程文件就創(chuàng)建成功了!

Pod工程文件創(chuàng)建成功.png

3.配置Pod項(xiàng)目工程文件
打開我們剛剛clone下來的 JATestKit_Local。

JATestKit_Local -> Example -> JATestKit_Local.xcworkspace

展開Podspec Metadata文件,點(diǎn)擊JATestKit_Local.podspec,開始編輯。

編輯Pod工程文件.png

編輯完之后,我們可以驗(yàn)證一下這個(gè)文件是否可用。cd到這個(gè)文件中,執(zhí)行一行命令:

pod lib lint JATestKit_Local.podspec

出現(xiàn)如圖所示的情況,就是成功了喲~

驗(yàn)證成功.png

如果沒有成功,就要重新編輯,把warning和error全部消除。

4.向私有庫中提交Pod工程文件
現(xiàn)在我們的Pod工程文件podspec已經(jīng)制作好了。
打開JATestKit_Local.xcworkspace,我們在如圖所示的目錄下創(chuàng)建一個(gè)類JATestClass,記得要把里面Classes里面自動(dòng)生成的ReplaceMe.m文件刪除~

目錄.png

我們在JATestClass.h文件中聲明一個(gè)方法,并在.m文件中實(shí)現(xiàn)它。

.h中
- (void)ja_test;

.m中
- (void)ja_test {
    NSLog(@"Private Specs:success");
}

等一下我們就用這個(gè)方法來驗(yàn)證私有庫是否可用。
接下來,就該將代碼上傳到coding.net的倉庫里啦~

命令如下:

git add .
git commit -m "commit"
git remote add origin https://git.coding.net/Plotac/JATestKit.git
git push -u origin master

然后,在push的時(shí)候,華麗麗的失敗了- 0-。

Push失敗.png

這是因?yàn)閭}庫里的README.MD、LICENSE和我們podspecs里的沖突了。
解決沖突:

git pull origin master
git pull origin master --allow-unrelated-histories

然后解決沖突之后再提交

git add .
git commit -m 'commit2'

并且重新push到git上去。

命令:

git pull origin master
git push -u origin master

tips:如果中間出現(xiàn)錯(cuò)誤可用如下命令查看狀態(tài)

git status

成功以后,coding.net上就有了我們的代碼了~

code上傳成功.png

5.標(biāo)記tag
code上傳成功以后,標(biāo)記tag

git tag 0.1.0
git push origin 0.1.0
標(biāo)記tag.png

6.將私有庫放到索引庫里
在第一步中,我們已經(jīng)將索引庫clone到了我們的cocoapods/repos目錄下了。
cd到JATestKit_Local,執(zhí)行命令:

pod repo push JAPrivateRepos JATestKit_Local.podspec

即pod repo push +索引庫名 +podspec名

出現(xiàn)下圖,說明你就大功告成了,撒花,鼓掌??


大功告成咯.png

驗(yàn)證一下:

pod search JATestKit_Local
bingo!.png

至此,私有庫的制作就完成了。
7.驗(yàn)證
接下來,我們新建一個(gè)工程PrivateSpecsTest,測試一下是否正常使用。
Podfile:

source 'https://git.coding.net/Plotac/JAPrivateRepos.git'
platform :ios, '8.0'
target 'PrivateSpecsTest' do
        pod 'JATestKit_Local', '0.1.0'
end

然后:

pod install

打開工程后就發(fā)現(xiàn)導(dǎo)入成功啦~:

導(dǎo)入成功.png

在ViewController里,導(dǎo)入頭文件

#import "JATestClass.h"
- (void)viewDidLoad {
    [super viewDidLoad];
    JATestClass *obj = [[JATestClass alloc]init];
    [obj ja_test];  
}

Command+R ..
控制臺輸出:

控制臺輸出.png

干的漂亮!
8.更新版本
私有庫已經(jīng)制作成功了,現(xiàn)在我們就要對自己的庫進(jìn)行更新維護(hù),提交新版本~
打開例子工程:

JATestKit_Local -> Example -JATestKit_Local.xcworkspace

比如說,我們要給我們的JATestClass類擴(kuò)充一個(gè)新的方法。

.h中
- (void)ja_newTest;

.m中
- (void)ja_newTest {
    NSLog(@"Update Success");
}

點(diǎn)擊JATestKit_Local.podspec,開始編輯:

更新.png

如果你的更新有很多內(nèi)容,可以在詳細(xì)介紹里面完善,這里只做一個(gè)例子。
更改之后,提交:

git add .
git commit -m 'commit666'
git pull origin master(先拉一下代碼,防止多人開發(fā)的時(shí)候別人有提交的代碼)
git push -u origin master

標(biāo)記新的tag

git tag 0.1.2
git push origin 0.1.2

Push到索引庫里

pod repo push JAPrivateRepos JATestKit_Local.podspec

如果沒有出現(xiàn)error和warning,就說明成功了
搜索一下

pod search JATestKit_Local

更新成功


更新成功.png

棒棒噠!??
至此,私有庫的制作和更新就全部完成~

有錯(cuò)誤不對的地方還望多多指教,感謝閱讀。

參考資料:
使用Cocoapods創(chuàng)建私有podspec
Creating Your First CocoaPod

再次感謝 Bartholomew大熊 的幫助~

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

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

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