1.準備工作
- 先去gitHub創建一個項目存放私有Repo源,空的就可以
- 本地添加私有源 終端執行命令
pod repo add XZRepositories [Repo源url]
(如果之前并未向gitHub push過文件也沒有把SSH公鑰保存到gitHub,這時候應該會提示你輸入gitHub賬號密碼) - 以上操作完成 cd ~/.cocoapods/repos目錄下至少會有2個文件夾 XZRepositories 和 master, master文件下面存放的是公有源文件, XZRepositories*目錄下目前是空的,后面會存放我們私有源文件
- 基本準備工作完成。
2.將項目添加到私有源中
(2.1.1)先將工程提交到git上
- gitHub新建一個project名字和工程一樣
- 終端cd至項目目錄下
- 建立本地倉庫
git init
- 將項目中的所有文件添加到本地倉庫中
git add .
- 將add的文件commit到倉庫中
git commit -m "可隨意填寫"
- 執行命令
git remote add origin [project在git上url]
- 上傳github之前,要先pull一下
git pull origin master
- 上傳代碼到github遠程倉庫
git push -u origin master
(2.1.2)可能遇見的問題
error:failed to push some refs to git [url]
解決方案:先執行git pull --rebase origin master
,再git push -u origin master
(2.2.1)添加到私有源中
- 因cocoaPods強制添加開源許可文件執行命令
echo MIT>FILE_LICENSE
創建名為FILE_LICENSE的文件 - 創建podspec文件
pod spec create 工程名
- 去打開podspec文件,編輯
編輯模板:
Pod::Spec.new do |s|
s.name = "XZGoodsListModule" # 項目名稱
s.version = "0.0.1" # 版本號 與 你倉庫的 標簽號 對應
s.license = { :type => "MIT", :file => "FILE_LICENSE" }
s.summary = "goods list" # 項目簡介
s.homepage = "https://git.coding.net/qing1234/XZGoodsListModule.git" # 倉庫的主頁
s.source = { :git => "https://git.coding.net/qing1234/XZGoodsListModule.git", :tag => "#{s.version}" } #你的倉庫地址,不能用SSH地址
s.resources = "XZGoodsListModule/XZGoodsListModule/*.{png,bundle}" # 如果有bundle包,就要加這句話
s.source_files = "XZGoodsListModule/XZGoodsListModule/**/*.{h,m}" # 你代碼的位置, XZGoodsListModule/*.{h,m} 表示 XZGoodsListModule文件夾下所有的.h和.m文件,不要.{h,m}就是所有文件
s.requires_arc = true # 是否啟用ARC
s.platform = :ios, "7.0" #平臺及支持的最低版本
# s.frameworks = "UIKit", "Foundation" #支持的框架
s.dependency "XZMediator" # 依賴庫
s.dependency "XZGoodsModel" # 依賴庫
s.dependency "XZGoodsListModuleCategory" # 依賴庫
# User
s.author = { "qing" => "251230890@qq.com" } # 作者信息
s.social_media_url = "http://www.lxweimin.com/u/2987f5a5790f" # 個人主頁
end
看一下你先的tag
git tag
添加tag
git tag 0.0.1
提交tag
git push origin master --tags
-
把podspec文件提交上去
pod repo push [遠程庫名] [項目名].podspec --verbose --allow-warnings
pod repo push [遠程庫名] [項目名].podspec --verbose --allow-warnings
的過程就是:1)、驗證 [項目名].podspec 文件
2)、拉取遠程版本庫 [遠程庫名]
3)、添加 [項目名].podspec 到版本庫中
4)、 push 到遠程 搜索
pod search 項目名
(2.2.2)可能遇見的錯誤
- ERROR | file patterns: The
source_files
pattern did not match any file.
這是最常見的錯誤,原因有很多種
1,pod的網絡文件路徑不對,所以找不到文件;
2,git上沒有設對應的tag;
3,pod上沒有設置與git tag對應的version;
解決辦法:
$ set the new version to 1.0.0
$ set the new tag to 1.0.0 (1.0.0要與podspec的version對應)
- ERROR | [iOS] unknown: Encountered an unknown error (Unable to find a specification for
XZMediator
depended upon byXZGoodsListModuleCategory
) during validation.
這種錯誤是你的工程依賴第三方庫造成的
解決辦法:
在提交podspec的命令后面加一個--private
或者--use-librariespod
就是這樣:
pod repo push XZRepositories XZGoodsListModuleCategory.podspec --verbose --allow-warnings --private
或者
pod repo push XZRepositories XZGoodsListModuleCategory.podspec --verbose --allow-warnings --use-libraries
- pod search 搜索不到你傳的項目
因為你本地search_index.json文件沒有更新
解決辦法:
前往文件~/Library/Caches/CocoaPods/search_index.json
把search_index.json文件刪除,然后再pod search 項目名
,之后terminal就會一直顯示Creating search index for spec repo 'master'..
,接下來就只能一直等了,我反正等了很久很久。