第一步:在GitHub上面創(chuàng)建一個要放置代碼的repository灸撰。步驟如圖:
創(chuàng)建完成后,會進(jìn)入到如下界面:
接下來就是在如上圖的界面打tag粗梭,具體操作見圖1~2
點擊圖一中的release,如果沒有創(chuàng)建過tag的話滞乙,則會出現(xiàn)create new release
點擊之后出現(xiàn)圖二樣式
- 圖二1處填寫的是git上的tag斩启,這個要和后面的xxx.podspec的version 對應(yīng)(網(wǎng)上有說要加v的兔簇,本篇教程下是不需要)
- 圖二2處是這個tag的名稱
- 圖二3處是這個tag對應(yīng)的描述
如果不想上github上面打tag的話垄琐,可以執(zhí)行下面的語句
git tag '0.1.0'
git push --tags
這個時候就需要在本地把這個repository庫clone下來,建議使用GitHub desktop軟件操作墩朦。
下面介紹GitHub desktop軟件的clone操作:
- 1氓涣、打開軟件GitHub desktop春哨,然后在左上角找到file選項
- 2赴背、點擊file選項晶渠,會彈出三個選項,選擇第三個
- 3便瑟、在彈出的選擇框里就是你的GitHub上面的庫到涂,找到對應(yīng)的clone就可以了
第二步實現(xiàn)方式一 :
1践啄、打開clone下來的文件夾(命名為A,后面的A文件夾說的就是這個文件夾)
2屿讽、打開終端伐谈,cd到A文件夾诵棵,然后終端輸入:
git clone https://github.com/wode0weiyi/ConfigPublicPod.git
3祝旷、終端cd到ConfigPublicPod文件夾中,然后執(zhí)行腳本./config.sh
cd ConfigPublicPod
./config.sh
(執(zhí)行腳本后护侮,會讓你輸入一系列參數(shù)羊初,projectName要傳到pod上的文件名什湘,httpsRepo是步驟一中創(chuàng)建repository庫的HTTPS地址闽撤,sshRepo就是repository庫的ssh地址哟旗,homePage是repository庫頁面的地址欄地址)
腳本執(zhí)行完成后,你的項目中就有了xxx.podspec文件了饱亮,這個就是pod的配置文件近上,后續(xù)要傳到pod上面去識別你的項目的壹无。
在xxx.podspec文件里面斗锭,你可以修改幾個地方,一個就是支持版本:
s.platform = :ios, "8.0"
一個就是author用戶:
s.author={"用戶名" => "GitHub賬號"}
s.version = "1.0.1"
這個根據(jù)自己要提交到git上的版本進(jìn)行變更她倘。這里會遇到比較多的問題作箍。最后會把遇到的一些問題總結(jié)下胞得。
這個時候,看文件目錄:
針對第二步所說的步驟跃巡,下面介紹一個比較簡單點外莲,且目錄清晰的步驟兔朦。
第二步實現(xiàn)方式二
- 1沽甥、cd到A目錄下面摆舟,將你要上傳的文件放到A目錄下面盏檐。然后創(chuàng)建一個xxx.podspec文件夾胡野。終端代碼:
touch 傳到pod上的文件名.podspec
然后用xcode打開xxx.podspec文件。將下面的代碼復(fù)制到文件里面:
#
# Be sure to run `pod spec lint BLAPIManagers.podspec' to ensure this is a
# valid spec and to remove all comments including this before submitting the spec.
#
# To learn more about Podspec attributes see http://docs.cocoapods.org/specification.html
# To see working Podspecs in the CocoaPods repo see https://github.com/CocoaPods/Specs/
#
Pod::Spec.new do |s|
# ――― Spec Metadata ―――――――――――――――――――――――――――――――――――――――――――――――――――――――――― #
s.name = "WebRTCHelper"
s.version = "0.0.1"
s.summary = "WebRTCHelper."
s.description = <<-DESC
this is WebRTCHelper
DESC
s.homepage = "https://github.com/wode0weiyi/WebRTCHelper"
s.license = { :type => "MIT", :file => "FILE_LICENSE" }
s.author = { "huzhihui" => "wonderfulhzh@163.com" }
s.platform = :ios, "8.0"
s.source = { :git => "https://github.com/wode0weiyi/WebRTCHelper.git", :tag => s.version.to_s }
s.source_files = "WebRTCHelper/*.{h,m}"
s.requires_arc = true
end
對應(yīng)的參數(shù)說明:
name:傳入pod的文件說明
version:傳入到pod上的版本,注意這里的版本一定要和git上面版本一致
summary:簡單描述
description:詳細(xì)描述
homepage:前面創(chuàng)建的repository的地址旨别,地址欄里的地址就可
license:憑證秸弛,這個在創(chuàng)建repository的時候選擇一下就行递览,見圖創(chuàng)建repository
author:發(fā)布者的信息绞铃,前面一個為用戶名荚坞,后面一個為GitHub的賬號
platform:支持的版本
source:資源信息菲盾,第一個引號里面的是repository的HTTPS地址亿汞,后面是tag疗我,不用動吴裤。
source_files:要傳文件的目錄
requires_arc :是否支持ARC
這里要重點注意的:
source_files
:這里要注意的是這里的路徑是以xxx.podspec文件為根據(jù),同級的話钮蛛,就寫文件名就好(一般要傳pod的最外層文件夾和xxx.podspec文件是同級的)魏颓。往后多級的,逐級加叹话。如果多個的話驼壶,就分組加热凹,逗號隔開般妙。下面針對各種情況給出范例:
- 1股冗、同級的文件夾B里面只有.h和.m文件
source_files = "B/*.{h,m}"
- 2止状、多級文件夾B/C/D(只有最后一級文件夾里面有.h和.m文件
source_files = "B/C/D/*.{h,m}"
-3怯疤、多級文件夾B/C/D,每個文件夾里面都有.h和.m文件
source_files = "B/*.{h.m}","B/C/*.{h.m}","B/C/D/*.{h.m}"
其中C D可以用**代替
接下來就是驗證xxx.podspec文件的正確性塔淤,終端cd 到xxx.podspec所在的文件夾高蜂,然后輸入
pod psec lint 或者pod spec lint --allow-warnings
驗證過程如果順利的話备恤,則會出現(xiàn)
podspec驗證
這里驗證會經(jīng)常出現(xiàn)兩個錯誤:
- 錯誤1:
file patterns: The ``source_files`` pattern did not match any file.
- 解決方法: 先按照上面說的目錄層級檢查自己的目錄層級,如果無誤惭笑,還出現(xiàn)這個錯誤脖咐,就需要手動去對應(yīng)的文件夾添加想要放到pod上面的文件了。
(1)汇歹、打開
/Users/Library/Caches/CocoaPods/Pods/External/
你要傳的項目文件
如圖:
(2)屁擅、我現(xiàn)在要放到pod上面的是WebRTCHelper文件,則刪除掉圖中2處
的所有文件产弹,然后在終端輸入pod psec lint xxx.podsepc
,當(dāng)然錯誤還是存在派歌;
(3)、重新驗證后這個時候發(fā)現(xiàn)圖中2處
會生成一個文件夾痰哨,點開這個文件夾胶果,在里面把你要放到pod上面的文件復(fù)制一份放到里面,(例如圖中的標(biāo)3
的文件夾)斤斧。然后再驗證早抠,這個錯誤就會沒有了撬讽。當(dāng)然具體問題還要具體討論尝蠕,這個是一個解決方法囚聚。
- 錯誤2:是git上打的版本和podspec文件里面的version不一致
- 解決方法:首先確認(rèn)下自己在git上面有沒有打包跋破,可以通過在GitHub上查看,網(wǎng)頁上打開你在GitHub上創(chuàng)建的
repository
,點擊release
查看,如果打了tag的話,就會顯示出來,如圖:
image.png
將podspec
文件里面的version
改成自己看到圖中的1.0.0就可以了锄贼。
注意事項
A文件夾里面代碼和xxx.podspec文件驗證成功后,需要將所有的改動傳到GitHub上面去逻锐,避免后面出現(xiàn)錯誤盏档。
這個操作可以在GitHub desktop軟件上操作前翎,步驟為:
- 1處如果A文件夾里面有數(shù)據(jù)或者文件修改,這里會展示出來橙数,不需要操作
- 2處是對這次代碼文件提交的一個說明响疚,必填银受。填好后,點擊2處下面的Commit to master 按鈕
- 點擊Commit to master 按鈕后蓝厌,完成后,點擊3處的所在地方蹦疑,然后等待就可以豆挽。
最后一步:驗證成功后,接下來就是上傳到pods花鹅。
在這之前,有一個好習(xí)慣就是驗證下你現(xiàn)在要傳到pod上面的文件名是否存在是嗜,比如我測試使用的是TestProject_2,驗證方法很簡單,就是pod搜索下看有沒有即可
pod search TestProject_2
如果搜索到和你文件名一樣的,這個時候你就要去改你的xxx.podspec
文件里面的name
屬性了
終端輸入:
pod trunk push xxx.podspec
然后等待結(jié)果就好芹扭,這個過程,網(wǎng)速不好的話會失敗。出現(xiàn):
成功后,看到終端輸出如圖:
本篇說的pods公有庫上傳自己的項目的方式有點復(fù)雜,后面重新介紹了另外一種方式上傳,相比起來,步驟少了很多田篇,用起來也簡單,且不容易出現(xiàn)source_files
報錯問題。有興趣的可以點擊鏈接查看在CocoaPods公有庫(repo是master)里面添加自己的項目
常見的錯誤請轉(zhuǎn)到錯誤分析
這篇說的是將自己的項目開源道pods上面,如果要創(chuàng)建自己的私有庫合陵,利用pod怎么去管理呢枢赔?請看CocoaPods私有庫管理,可以用于組件化,還會說到pod上傳項目拥知,文件層級怎么來劃分踏拜。