CocoaPods創建公有和私有Pod庫方法總結

Github地址?zhangxiaomeng1 (ZXM) · GitHub

正文目錄

一. 創建公有Pod庫

1、注冊CocoaPods賬戶信息

2、創建共享庫文件并上傳到公有倉庫

3、編輯.podspec文件

4、打tag, 發布一個release版本

5、發布自己的庫描述文件podspec給cocoapods

6、關于查找和使用新創建的庫

7、更新維護podspec


二. 創建私有Pod庫,整體思路:

1.創建一個私有spec repo 管理所有私有spec文件;

2.創建Pod所需要的項目工程文件,并且有可訪問的項目版本控制地址;

3.創建Pod所對應的podspec文件;

4.驗證podspec文件是否可用;

5.向私有的spec repo里添加podspec文件;

6.新建個項目測試自己的私有庫;

7.更新podspec,建不同的版本;


一. 創建公有Pod庫

1. 創建一個工程 ,打開終端,切換到你要創建的位置的目錄,

cd /Users/zhangxiaomeng/Desktop/Repertory/OC/MyPods/XMLineChartView

pod lib create XMLineChartView

當被問及創建Swift還是OC項目,按自己要求回答,我選擇ObjC;

當被問及是否創建一個demo應用包含在工程里,根據需要,如果需要寫一個demo示例,就選擇Yes,否則選擇NO,我這里選擇Yes;

當被問及是否需要使用測試Framwork,選擇NO;

當被問及是否需要做接界面調試,我這里選擇NO;

還有一個就是工程文件的前綴,我這里是自己的名字的縮寫,這個隨意寫;

2.填寫podspec信息,這個文件主要是用來描述pod的版本號,首頁(homepage),作者信心等,具體的可以參看官方offical reference page

README如果你使用過GitHub,你肯定知道README文件的重要性,這個文件可以使用Markdown語法,主要展示在GitHub工程上的首頁。README文件對于使用這個pod庫的人來說,有和沒有這個文件,區別是很明顯的,此外這還有助于創建一個高質量的CocoaPods Quality Index

LICENSE要想是Spec倉庫接收,就必須包含一個license。命令pod lib create自動創建使用的是MITlicense;

其實通過pod lib lint這個命令,Cocoapods已經幫我們創建了一個模板我們只需要在里面根據需要你進行配置即可.沒有用到的注釋(#開頭的)可以刪除掉,看起來舒服一些.


接下來,我們做一個遠程驗證

pod lib lint?XMLineChartView.podspec --allow-warnings

只要見到passed validation就是成功通過了驗證.

通過以上步驟,我們只是創建了一個合格的空的工程,并沒有實現任何功能,接下來我們就需要把自己要實現的功能代碼方進去.

找到工程中ReplaceMe文件,替換就可以.

如果你在創建工程時候創建了一個包含demo的工程,那么你可以先切換到工程的Example文件目錄下面使用命令:

pod install

成功以后你就可以在demo文件中使用你的功能文件了.如果不能導入,那么可以commond + B編譯一下再導入使用

3.我們還沒有在GitHub上面創建相關的倉庫,因此可以先進入GitHub賬戶創建倉庫

4. 提交自己的pod

Step 1: 接下來就需要把自己的工程推送到Github:

?git add .

?git commit -m “Initial Commit"

?git remote add origin https://github.com//YourPodName.git // replacewith your github.com username

? git push -u origin master

//添加版本號

$ git tag -m "first release" "0.1.0"

$ git push --tags

Step 2 :驗證

終端切換到LPodTest.podspec文件所在的目錄下面,運行命令

pod lib lint --allow-warnings

如果出錯:

[!] QXMFatherHomeTbaListMoreVC_Category did not pass validation, due to 2 errors.

You can use the `--no-clean` option to inspect any issue.

解決:

pod lib lint --allow-warnings --use-libraries


5. 提交pod 到Specs倉庫

在這里有個pod trunk工具需要實現(只需要配置一次即可)。trunk工具是為了認證用戶信息(包括設備)而存在的,只有注冊認證通過了,才能夠發布公開庫。

注冊trunk:

$ pod trunk register 郵箱?'名稱' --description='描述'

替換自己的郵箱名稱和描述

注冊成功后提示:

[!] Please verify the session by clicking the link in the verification email that has been sent to13162255392@163.com

需要我們接受認證郵件并點擊附帶鏈接確認。當我們完成注冊后,以后不需要此步驟。最后使用trunk工具,發布公開庫。

$ pod trunk push XMLineChartView.podspec --allow-warnings


Updating spec repo `master`

--------------------------------------------------------------------------------

???? Congrats

???? XMLineChartView (1.1.3) successfully published

???? March 25th, 18:55

???? https://cocoapods.org/pods/XMLineChartView

???? Tell your friends!

如果出錯:

[!] The spec did not pass validation, due to 2 errors.

解決

pod trunk push --allow-warnings --use-libraries


6. pod search 檢驗是否可用大多情況下會出現這個問題:

[!] Unable to find a podwithname, author, summary,ordescriptionmatching `LPodTest

這主要是因為在本地索引里面沒有, 解決辦法

pod setup (不行,實用方法二)

pod repo update(不行,試用方法三)

前往這個路徑下~/Library/Caches/CocoaPods刪除search_index.json文件 , 或者使用終端命令刪除:

rm ~/Library/Caches/CocoaPods/search_index.json

然后重新搜索.




打包類庫

需要使用一個cocoapods的插件cocoapods-packager來完成類庫的打包。當然也可以手動編譯打包,但是過程會相當繁瑣。

安裝打包插件

終端執行以下命令

sudo gem install cocoapods-packager

打包

命令很簡單,執行

pod package BZLib.podspec --library --force

其中--library指定打包成.a文件,如果不帶上將會打包成.framework文件。--force是指強制覆蓋。最終的目錄結構如下

修改spec文件

#s.source_files = 'ABTestFrameWork/Classes/**/*'

??s.vendored_frameworks ='ABTestFrameWork-1.0.5/ios/ABTestFrameWork.framework'

(.a是s.vendored_libraries,.framework是s.vendored_frameworks。)

最后執行?pod trunk push --allow-warnings --use-libraries




二.創建私有庫

1、如果想利用pod安裝私有庫,那么就得創建和cocoapods官方一樣的結構,我們想來看看cocoapods官方的結構,cocoapods所有公共庫文件都存放在CocoaPods spec遠端文件地址,如果在電腦上安裝了cocoapods它會從這個地址clone一份到本地,每次pod update 都會更新這個本地倉庫,首先先創建一個私有的庫 ,由于github的私有倉庫是收費的,這里用coding碼市創建私有倉庫,如果和其他人協同開發,只要把該倉庫的權限添加給他就行。

在coding碼市在創建2個倉庫,一個倉庫存放spec文件, 一個存源代碼,

創建完遠端的spec XMSpec,在終端執行

pod repo add XMSpec https://git.coding.net/n34/XMSpec.gi

然后執行

open ~/.cocoapods/repos?

會開看到在repos中創建了一個私有的倉庫,master是cocoapods官方的


2.創建工程和編輯spec文件

cd /Users/zhangxiaomeng/Desktop/Repertory/OC/MyPods/XSPrivate/XSCategorys

pod lib create XSCategorys

3、上傳到coding和打tag


4、驗證.podspec文件

pod lib lint XSCategorys.podspec --allow-warnings


報錯有可能?


5、向私有的庫里添加podspec文件

pod repo push XMSpec?XSCategorys.podspec


6.驗證一下結果;

pod search XSCategory


[!] Unable to find a pod with name, author, summary, or description matching `XSManager`

解決辦法:

rm ~/Library/Caches/CocoaPods/search_index.json


7、新建一個項目進行驗證

xcode新建項目 在podfile中添加

pod 'XSCategorys', '~> 0.0.2'

如果提示'unable to find a specification for'

需要在podfile文件中添加源地址

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

source 'https://git.coding.net/n34/XMSpec.git'

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 230,247評論 6 543
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 99,520評論 3 429
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 178,362評論 0 383
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,805評論 1 317
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 72,541評論 6 412
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,896評論 1 328
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,887評論 3 447
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 43,062評論 0 290
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 49,608評論 1 336
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 41,356評論 3 358
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,555評論 1 374
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 39,077評論 5 364
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,769評論 3 349
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 35,175評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,489評論 1 295
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 52,289評論 3 400
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,516評論 2 379

推薦閱讀更多精彩內容