Github地址?zhangxiaomeng1 (ZXM) · GitHub
正文目錄
一. 創(chuàng)建公有Pod庫
1、注冊CocoaPods賬戶信息
2铺厨、創(chuàng)建共享庫文件并上傳到公有倉庫
3办斑、編輯.podspec文件
4枉阵、打tag, 發(fā)布一個(gè)release版本
5岂昭、發(fā)布自己的庫描述文件podspec給cocoapods
6守问、關(guān)于查找和使用新創(chuàng)建的庫
7、更新維護(hù)podspec
二. 創(chuàng)建私有Pod庫碧查,整體思路:
1.創(chuàng)建一個(gè)私有spec repo 管理所有私有spec文件运敢;
2.創(chuàng)建Pod所需要的項(xiàng)目工程文件,并且有可訪問的項(xiàng)目版本控制地址忠售;
3.創(chuàng)建Pod所對應(yīng)的podspec文件者冤;
4.驗(yàn)證podspec文件是否可用;
5.向私有的spec repo里添加podspec文件档痪;
6.新建個(gè)項(xiàng)目測試自己的私有庫;
7.更新podspec邢滑,建不同的版本腐螟;
一. 創(chuàng)建公有Pod庫
1. 創(chuàng)建一個(gè)工程 ,打開終端愿汰,切換到你要創(chuàng)建的位置的目錄,
cd /Users/zhangxiaomeng/Desktop/Repertory/OC/MyPods/XMLineChartView
pod lib create XMLineChartView
當(dāng)被問及創(chuàng)建Swift還是OC項(xiàng)目乐纸,按自己要求回答衬廷,我選擇ObjC;
當(dāng)被問及是否創(chuàng)建一個(gè)demo應(yīng)用包含在工程里汽绢,根據(jù)需要吗跋,如果需要寫一個(gè)demo示例,就選擇Yes宁昭,否則選擇NO跌宛,我這里選擇Yes;
當(dāng)被問及是否需要使用測試Framwork积仗,選擇NO疆拘;
當(dāng)被問及是否需要做接界面調(diào)試,我這里選擇NO寂曹;
還有一個(gè)就是工程文件的前綴哎迄,我這里是自己的名字的縮寫,這個(gè)隨意寫隆圆;
2.填寫podspec信息漱挚,這個(gè)文件主要是用來描述pod的版本號,首頁(homepage),作者信心等渺氧,具體的可以參看官方offical reference page
README如果你使用過GitHub旨涝,你肯定知道README文件的重要性,這個(gè)文件可以使用Markdown語法阶女,主要展示在GitHub工程上的首頁颊糜。README文件對于使用這個(gè)pod庫的人來說,有和沒有這個(gè)文件秃踩,區(qū)別是很明顯的衬鱼,此外這還有助于創(chuàng)建一個(gè)高質(zhì)量的CocoaPods Quality Index;
LICENSE要想是Spec倉庫接收憔杨,就必須包含一個(gè)license鸟赫。命令pod lib create自動創(chuàng)建使用的是MITlicense;
其實(shí)通過pod lib lint這個(gè)命令,Cocoapods已經(jīng)幫我們創(chuàng)建了一個(gè)模板我們只需要在里面根據(jù)需要你進(jìn)行配置即可.沒有用到的注釋(#開頭的)可以刪除掉,看起來舒服一些.
接下來,我們做一個(gè)遠(yuǎn)程驗(yàn)證
pod lib lint?XMLineChartView.podspec --allow-warnings
只要見到passed validation就是成功通過了驗(yàn)證.
通過以上步驟,我們只是創(chuàng)建了一個(gè)合格的空的工程,并沒有實(shí)現(xiàn)任何功能,接下來我們就需要把自己要實(shí)現(xiàn)的功能代碼方進(jìn)去.
找到工程中ReplaceMe文件,替換就可以.
如果你在創(chuàng)建工程時(shí)候創(chuàng)建了一個(gè)包含demo的工程,那么你可以先切換到工程的Example文件目錄下面使用命令:
pod install
成功以后你就可以在demo文件中使用你的功能文件了.如果不能導(dǎo)入,那么可以commond + B編譯一下再導(dǎo)入使用
3.我們還沒有在GitHub上面創(chuàng)建相關(guān)的倉庫,因此可以先進(jìn)入GitHub賬戶創(chuàng)建倉庫
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 :驗(yàn)證
終端切換到LPodTest.podspec文件所在的目錄下面,運(yùn)行命令
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倉庫
在這里有個(gè)pod trunk工具需要實(shí)現(xiàn)(只需要配置一次即可)消别。trunk工具是為了認(rèn)證用戶信息(包括設(shè)備)而存在的抛蚤,只有注冊認(rèn)證通過了,才能夠發(fā)布公開庫寻狂。
注冊trunk:
$ pod trunk register 郵箱?'名稱' --description='描述'
替換自己的郵箱名稱和描述
注冊成功后提示:
[!] Please verify the session by clicking the link in the verification email that has been sent to13162255392@163.com
需要我們接受認(rèn)證郵件并點(diǎn)擊附帶鏈接確認(rèn)岁经。當(dāng)我們完成注冊后,以后不需要此步驟蛇券。最后使用trunk工具缀壤,發(fā)布公開庫樊拓。
$ 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 檢驗(yàn)是否可用大多情況下會出現(xiàn)這個(gè)問題:
[!] Unable to find a podwithname, author, summary,ordescriptionmatching `LPodTest
這主要是因?yàn)樵诒镜厮饕锩鏇]有, 解決辦法
pod setup (不行,實(shí)用方法二)
pod repo update(不行,試用方法三)
前往這個(gè)路徑下~/Library/Caches/CocoaPods刪除search_index.json文件 , 或者使用終端命令刪除:
rm ~/Library/Caches/CocoaPods/search_index.json
然后重新搜索.
打包類庫
需要使用一個(gè)cocoapods的插件cocoapods-packager來完成類庫的打包。當(dāng)然也可以手動編譯打包塘慕,但是過程會相當(dāng)繁瑣筋夏。
安裝打包插件
終端執(zhí)行以下命令
sudo gem install cocoapods-packager
打包
命令很簡單,執(zhí)行
pod package BZLib.podspec --library --force
其中--library指定打包成.a文件图呢,如果不帶上將會打包成.framework文件条篷。--force是指強(qiáng)制覆蓋。最終的目錄結(jié)構(gòu)如下
修改spec文件
#s.source_files = 'ABTestFrameWork/Classes/**/*'
??s.vendored_frameworks ='ABTestFrameWork-1.0.5/ios/ABTestFrameWork.framework'
(.a是s.vendored_libraries蛤织,.framework是s.vendored_frameworks赴叹。)
最后執(zhí)行?pod trunk push --allow-warnings --use-libraries
二.創(chuàng)建私有庫
1、如果想利用pod安裝私有庫瞳筏,那么就得創(chuàng)建和cocoapods官方一樣的結(jié)構(gòu)稚瘾,我們想來看看cocoapods官方的結(jié)構(gòu),cocoapods所有公共庫文件都存放在CocoaPods spec遠(yuǎn)端文件地址姚炕,如果在電腦上安裝了cocoapods它會從這個(gè)地址clone一份到本地摊欠,每次pod update 都會更新這個(gè)本地倉庫,首先先創(chuàng)建一個(gè)私有的庫 柱宦,由于github的私有倉庫是收費(fèi)的些椒,這里用coding碼市創(chuàng)建私有倉庫,如果和其他人協(xié)同開發(fā),只要把該倉庫的權(quán)限添加給他就行掸刊。
在coding碼市在創(chuàng)建2個(gè)倉庫,一個(gè)倉庫存放spec文件, 一個(gè)存源代碼免糕,
創(chuàng)建完遠(yuǎn)端的spec XMSpec,在終端執(zhí)行
pod repo add XMSpec https://git.coding.net/n34/XMSpec.gi
然后執(zhí)行
open ~/.cocoapods/repos?
會開看到在repos中創(chuàng)建了一個(gè)私有的倉庫,master是cocoapods官方的
2.創(chuàng)建工程和編輯spec文件
cd /Users/zhangxiaomeng/Desktop/Repertory/OC/MyPods/XSPrivate/XSCategorys
pod lib create XSCategorys
3忧侧、上傳到coding和打tag
4石窑、驗(yàn)證.podspec文件
pod lib lint XSCategorys.podspec --allow-warnings
報(bào)錯有可能?
5、向私有的庫里添加podspec文件
pod repo push XMSpec?XSCategorys.podspec
6.驗(yàn)證一下結(jié)果蚓炬;
pod search XSCategory
[!] Unable to find a pod with name, author, summary, or description matching `XSManager`
解決辦法:
rm ~/Library/Caches/CocoaPods/search_index.json
7松逊、新建一個(gè)項(xiàng)目進(jìn)行驗(yàn)證
xcode新建項(xiàng)目 在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'