轉自:http://www.jianshu.com/p/129d3c315ea6git
確保你的客戶端安裝有Github桌面版並登陸,在網頁登陸上你的Github帳號. 並準備好你須要上傳的SDK文件內容.打開終端以備開始.github
1.0 SDK的建立目的,就是知足別人的需求,以幫助他人或者本身在開發項目時能夠經過有效的第三方來更好更快的完善,開發項目.因此,在完成核心代碼的編寫後,按照比較的合理的操做方式,你有必要寫一份用來展現本身SDK核心,主要做用的Demo,以幫助他人更好的認識,學習它.因此,若是此時你已經完成了這個步驟,那麼,此時的Demo文件的框架結構應該是下圖所示的:框架
2.0 能夠暫時把文件放起,進入真正的建立Github代碼倉庫並關聯Cocoapods的階段.其初期的過程更是對[用github上傳並管理本身的項目]的重複.進入Github我的主頁,點擊Repositories而後點擊New進入倉庫建立界面:異步
3.0 根據下圖詳細提示,對倉庫進行編寫,在這裏注意一點->※爲了方便,也是規範總體結構,你要保證這裏的 Repository name 要和後面的 .podspec 文件裏的文件名,還有你的核心文件的文件名相一致:工具
4.0 倉庫建立成功的初始模樣就以下圖所示,而後點擊右上方 Clone or download 下的Open in Desktop 將整個倉庫下載到Github桌面版並打開:學習
5.0 下圖所示下載到桌面並打開後的大致模樣,直到目前爲止,你已經有了兩個文件,1️⃣你以前所放起的Demo文件;2️⃣你新建立並下載,並且將會是最終提交的文件YourSDK.接下來,你就須要將兩個文件合併,實際上就是須要將Demo文件的主題部分手動拖動到新的 YourSDK 文件中就能夠:3d
6.0 具體合併過程可見下圖,在這裏有個要點須要做出特別說明->在原Demo文件中,核心文件夾名爲 YourSDKFiles ,在拖動到YourSDK文件夾時,我將其更改成同名文件 YourSDK ,那麼問題來了,在Demo裏面的 YourSDKFiles 仍是存在的,可是裏面的東西卻不能顯示了,因此在這裏,須要從新打開Demo文件,並從新導入一遍核心文件 YourSDK .blog
7.0 一切準備穩當,接下來,就須要將新的 YourSDK 上傳並異步更新到Github上去,在未提交界面,請注意一點->必須寫入 Summary 或者 Description 二者中的任意一項,點擊 commit 完成後,在點擊 Sync 異步更新:ip
8.0 提交完成後,回到網頁界面並刷新,獲取到最新的倉庫模樣,即以下圖所示:資源
9.0 其實,以上幾個步驟就是我在上一節所說的用 Github 上傳並管理本身項目的步驟,那麼,接下來的步驟就是真正讓你的倉庫與Cocoapods關聯的關鍵所在.
首先,將一點核心的文件,那就是一個叫 .podspec 的文件,經過下圖的比對,一個倉庫能不能實現與Cocoapods的關聯,關鍵之處就在於一個屬於該倉庫的 .podspec 文件;
因此,接下來的全部操做基本就是圍繞 .podspec 文件來進行的了:
10.0 先來本身辨識下這個文件,直接點擊打開別人已經完成的 .podspec 文件(我點開的是MJ大神MJRefresh框架裏podspec文件),看一下里面的祕密.
注意->1️⃣直接看裏面的內容便可,第一行中的東西每一個podspec文件並沒有差別, 往下看, s.name ,這個就是上面我所說的要與 Repository name 保持一致的SDK名.
注意->2️⃣在接下來的操做中,我將會直接拷貝別人的podspec文件,並根據本身的內容進行合理修改.可是,經過終端,你也能夠經過指令進行建立:
pod spec create YourSDK.podspec
並用一下指令對其進行修改等操做,以後將會提到:
vi YourSDK.podspec
11.0 保持podspec與總體文件和核心文件的命名一致, 在終端中 cd 該文件,找到後 進行以下操做,進入到podspec文件裏:
vi YourSDK.podspec
12.0 進入到主podspec界面後,以下圖,點擊鍵盤上的 i (insert) 就能夠開始對其進行刪除或者輸入的操做.命名,版本號,摘要,描述,網頁地址,證書,平臺,做者信息,源地址,資源文件,arc的選擇等等.依次根據實際狀況依次修改填寫.
注意->若是在終端建立,會有更多的可供選項,內容更多,不少東西對咱們正在但願獲得的做用並沒有太多幫助,儘可能將其簡化便可.
在修改完成並確認無誤後,點擊 Esc 鍵,而後輸入 :w 保存, :q 退出:
13.0 在完成保存並退出後,首先要作的就是打標籤,將 tag push 到Github上.經過如下四步便可:
git tag '0.0.1'
git add *
git commit -m 'add tag'
git push origin 0.0.1
14.0 接下來,在建立完善podspec並給Github打完標籤後,就能夠把該倉庫做爲分支推送給Cocoapods.
有如下操做->1️⃣對打上的標籤與podspec標記的標籤進行比驗證,經過如下指令進行:
pod lib lint
若是成功,會返回一句以下結構的信息:
-> YourSDK (0.0.1)
2️⃣執行下圖中 pod trunk push 命令,真正執行分支的推送操做.當顯示 has been pushed 時,即證實推送成功.
3️⃣返回到網頁界面,刷新該倉庫.點擊 Brand:master ,再找到 Tags 並點擊,就會發現你所打的標籤號.
15.0 返回到終端,在終端裏執行以下指令
pod search YourSDK
以下圖,即證實,此時你已經成功關聯你的SDK到Cocoapods.
在這個操做中,其實有一些坑的,並且,這些坑都比較集中的出如今執行 pod trunk push 也就是推送分支的過程當中.接下來,我將我所遇到的一些常見坑給你們填一下,有不周之處,望各位指正.
1.0 錯誤1️⃣:核心文件沒有正確匹配
- ERROR | [iOS] file patterns: The `source_files` pattern did not match any file.
解決1️⃣:手動導入
2.0 錯誤2️⃣:因爲警告,未經過認證
YourSDK did not pass validation ,due to 1 wanrings (but you can use --allow-warnings to ignore them)
解決2️⃣:從新執行下面指令
pod trunk push YourSDK.podspec --allow-warnings
整個過程其實仍是比較容易理解的,就是將Github上的東西拿一份給Cocoapods託管,重點和難點就是在創建鏈接的部分.不過,這個過程的順利進行,須要你對Github上的文件結構有充分的認識,還須要較爲熟練的使用Github桌面版(Github Desktop).
同時,還有一點必須說明,這個過程在Cocoapods亦或者Github,還有終端的操做上,所用到的東西其實十分有限的,須要平時的積累,觀察與總結.
若是能十分有譜的使用某一管理工具對本身的工做成果或者學習成果,進行有效的管理,引導的話,這對你以後的工做和學習都是大有裨益的,不少操做中將會起到事半功倍的效果.
諸君共勉!