想要建立自己的私有庫,還需要建立另外乙個git倉庫去維護裡面所有的其他私有庫的版本,比如這個倉庫取名為specs.git
。
這個specs.git
維護的是你所有的其他私有庫的版本號對應的podspec檔案。
目錄如下所示
在伺服器端建立私有庫
注意:建立git倉庫必須用git賬號登入建立才能有效,如果用root在某些情況下會顯示許可權錯誤。
git init --bare yourreponame.git
chown -r git:git yourreponame.git/
建立完成後回到本地終端,執行
pod repo add yourreponame git@***.***
.***
.***:/yourreponame.git
執行成功後,去~/.cocoapod/repos/
目錄下會發現多了乙個資料夾
這裡的ll-specs只是我自己倉庫的名字,實際資料夾名取決於你的yourreponame。
使用命令pod lib create yourpodname
來建立私有庫專案。期間需要回答幾個問題。
建立完成後有乙個example資料夾和私有庫資料夾,把專案檔案放到私有庫資料夾中的class資料夾內。
然後開啟example專案,執行pod update
。這樣,私有庫專案檔案就匯入到example專案中了,可以在example專案中除錯私有庫程式。
專案的根目錄中,有乙個podspec檔案。
pod::spec.new
do |s|
# 專案名稱
s.name = 'yourpodname'
# 版本號
s.version = '0.1.0'
# 專案摘要
s.summary = 'a summary.'
# 專案描述
s.description = <
a description.
desc
# 主頁,這裡要填寫可以訪問到的位址,不然驗證不通過
# 作者資訊
s.author =
# 專案位址,這裡不建議用ssh的位址,會有警告,建議http和https,最好使用https
s.source =
# 最低支援的ios版本
s.ios.deployment_target = '8.0'
# **原始檔位址
s.source_files = 'yourpodname/classes/**/*'
# 依賴的framework
s.frameworks = 'uikit', 'mapkit'
# 依賴的公共庫或私有庫
s.dependency 'afnetworking', '~> 2.3'
end
把其中的s.source
換成有效的位址就行了,cocoapod建議是https開頭的位址。
使用pod lib lint yourpodname.podspec
命令進行本地驗證檔案有效性。
使用pod spec lint yourpodname.podspec
命令進行本地和遠端驗證檔案有效性。
執行pod repo push yourreponame yourpodname.podspec
命令把私有庫新增到私有repo中。
這個命令還會驗證一次podspec檔案的有效性,成功後可以在
~/.cocoapods/repos/yourreponame/
路徑中看到私有庫已經被新增進yourreponame資料夾了。如果有警告則加上--allow-warnings
。
把你的管理私有庫的倉庫的git位址發個同事,讓他們執行下面語句即可。
pod repo add yourreponame git@***.***
.***
.***:/yourreponame.git
需要注意的一點是使用pod lib create yourpodname
建立專案的時候會自帶.git資料夾,這個.git是只能commit到本地的(看.git/config檔案就知道了,裡面沒有remote資訊),需要使用者自己把遠端git位址設定到push命令中去。
git remote add origin git@***.***
.***
.***:/yourpodname.git
再設定push預設分支
git push --set-upstream origin master
如果在校驗podspec檔案中出現warning而驗證不通過的時候,可以在命令尾部加上--allow-warnings
忽略警告,這樣驗證就可以通過了。
如果有錯,則必須處理。如:
pod
spec
lint
yourpodname
.podspec--
allow
-warnings
如果私有庫中依賴私有庫,則驗證podspec檔案的時候需要加上–sources引數,否則會出現找不到你依賴的私有庫。如:
pod spec lint yourpodname.podspec --sources='git@***.***.***.***:/yourreponame.git,'
如果你的podfile中的私有庫依賴了其他的私有庫,在執行pod update
的時候報錯
unable to find a specification for `privatepod` depended upon by `privatepod`
但是你在執行pod search
的時候是可以search到你的私有庫的,就是update報找不到的錯誤。
這是因為pod update
預設只會searchmaster
目錄下的庫,如果你想search你的specs目錄,則需要在podfile第一行新增私有庫的源即可。
source
'git@***.***.***.***:/yourreponame.git'
Cocoapods 建立私有庫
比如我有乙個框架a,該工程已經在git版本管理下了,先要在該工程下建立podspec 檔案,裡面包含著一些資訊。比如使用該框架時依賴哪些框架,開源協議,需要哪些檔案,以及該工程的對應tag標籤。然後上傳podspec到私有specrepo。spec repo裡面可以管理很多podspec,其實coc...
CocoaPods 私有庫建立
總結流程和pod 指令,以及自己操作遇到的問題。參考文章 ios元件化 基礎 ios元件化 專案元件化 swift objective c 使用cocoapods建立 管理私有庫 初中級用法 swift objective c 使用cocoapods建立 管理私有庫 高階用法 建立自己的私有庫 4 ...
CocoaPods私有庫的建立
一.建立版本庫首先,我們要建立乙個像master一樣的存放版本描述檔案的git倉庫,因為是私人git倉庫,我選擇了oschina來建立自己的石油倉庫 因為是免費的?當然你也可以選擇在github上建立 7 month 接下來,我將以oschina為例來建立自己的私有庫 建立版本描述倉庫 版本庫名字為...