1 Cocoapods的機(jī)制詳解 (重點(diǎn))
遠(yuǎn)程索引庫(kù)里面全是描述文件,也包含框架的描述文件.spec文件
.spec文件里面有框架的名稱沉眶、版本打却、真實(shí)的源碼地址...
通過(guò)pod step下載遠(yuǎn)程索引庫(kù)到本地成本地索引庫(kù),其中本地索引庫(kù)會(huì)生成檢索的檢索文件
我們使用的pod search就是在本地索引庫(kù)檢索的谎倔。
注意:本地索引庫(kù)生成以后柳击,如果遠(yuǎn)程索引庫(kù)有更新新內(nèi)容,這個(gè)新內(nèi)容通過(guò)pod search是搜索不到的传藏。這時(shí)只能重新下載本地索引庫(kù)(pod setup)
遠(yuǎn)程索引庫(kù):
本地索引庫(kù)目錄/Users/用戶名/.cocoapods/repos/master
把用戶名改成自己的就OK
檢索的索引文件目錄/Users/用戶名/Library/Caches/CocoaPods
把用戶名改成自己的就OK
刪除索引文件后腻暮,pod search會(huì)先從遠(yuǎn)程下載,然后在在本地搜索
2 創(chuàng)建一個(gè)自己的框架并上傳到github
如果git的使用還不太熟悉毯侦,可以參考git的基本使用
2.1 編寫自己的源碼并上傳到github
2.1.1.創(chuàng)建遠(yuǎn)程倉(cāng)庫(kù)
復(fù)制:git remote add origin https://github.com/chriseleee/Load_Big_Image.git
2.1.2.編寫我的代碼庫(kù)哭靖,并上傳到github
以我的Load_Big_Image為例:
cd 指定目錄
git init
git add .
git commit -m '標(biāo)記信息'
git remote add origin https://github.com/chriseleee/MyKu.git
git remote
git push origin master
創(chuàng)建版本號(hào)
git tag '0.0.1'
git push --tags
3 編寫版本對(duì)應(yīng)的描述文件podspec
pod spec create Load_Big_Image
Load_Big_Image
為描述文件的名稱,可以自己定侈离,最好與庫(kù)的名稱一致
如果創(chuàng)建不成功试幽,請(qǐng)看后面的問(wèn)題詳情
打開描述文件,修改如下內(nèi)容:
最終代碼
Pod::Spec.new do |s|
s.name = "Load_Big_Image"
s.version = "0.0.1"
s.summary = "integrate APNs rapidly"
s.homepage = "https://github.com/chriseleee/Load_Big_Image"
s.license = { :type => "MIT", :file => "LICENSE" }
s.author = { "chriseleee" => "chriseleee@163.com" }
#s.social_media_url = "http://xuyafei.cn"
s.platform = :ios, "7.0"
s.source = { :git => "https://github.com/chriseleee/Load_Big_Image.git", :tag => s.version }
s.source_files = "Load_Big_Image/*.{h,m}"
s.requires_arc = true
end
s.name:名稱卦碾,pod search 搜索的關(guān)鍵詞
s.version:版本
s.summary:簡(jiǎn)介铺坞,pod search 搜索的關(guān)鍵詞
s.homepage:主頁(yè)地址,例如Github地址
s.license:許可證
s.author:作者
s.social_media_url:社交網(wǎng)址
s.platform:平臺(tái)
s.source:Git倉(cāng)庫(kù)地址洲胖,例如在Github地址后邊加上 .git 就是Git倉(cāng)庫(kù)地址济榨,常見寫法如下
s.source_files:需要包含的源文件,常見的寫法如下
s.resources:需要包含的圖片等資源文件
s.dependency:依賴庫(kù)绿映,不能依賴未發(fā)布的庫(kù)
s.dependency:依賴庫(kù)擒滑,如有多個(gè)可以這樣寫
s.requires_arc:是否要求ARC
s.source_files 常見寫法
"Directory1/*"
"Directory1/Directory2/*.{h,m}"
"Directory1/**/*.h"
“*” 表示匹配所有文件
“*.{h,m}” 表示匹配所有以.h和.m結(jié)尾的文件
“**” 表示匹配所有子目錄
s.source 常見寫法
s.source = { :git => "https://github.com/xiaofei86/LPPushService.git", :commit => "68defea" }
s.source = { :git => "https://github.com/xiaofei86/LPPushService.git", :tag => 1.0.0 }
s.source = { :git => "https://github.com/xiaofei86/LPPushService.git", :tag => s.version }
commit => "68defea" 表示將這個(gè)Pod版本與Git倉(cāng)庫(kù)中某個(gè)commit綁定
tag => 1.0.0 表示將這個(gè)Pod版本與Git倉(cāng)庫(kù)中某個(gè)版本的comit綁定
tag => s.version 表示將這個(gè)Pod版本與Git倉(cāng)庫(kù)中相同版本的comit綁定
按照上述規(guī)則編輯完成就制作好了 .podspec
3.1 郵箱驗(yàn)證
郵箱驗(yàn)證之前把更改的代碼上傳到github
git add .
git commit --m '第二次修改'
git push -u origin master
郵箱驗(yàn)證
pod trunk register chriseleee@163.com 'chriseleee' --verbose
chriseleee@163.com 為自己可用的郵箱
'chriseleee' 為自己的名字
提示去郵箱驗(yàn)證腐晾,驗(yàn)證完后如下提示:
3.2 上傳描述文件到遠(yuǎn)程索引庫(kù)
開始上傳
pod trunk push podspec.podspec文件
podspec.podspec文件為自己的.podspec文件名
4 小試牛刀(重點(diǎn))
pod search Load_Big_Image
現(xiàn)在搜索庫(kù)是收不到的。
還記得前面說(shuō)到 pod search 是搜索的本地索引文件還記得么丐一?
對(duì)的藻糖,要?jiǎng)h除本地索引文件、更新本地索引庫(kù)
檢索的索引文件目錄/Users/用戶名/Library/Caches/CocoaPods
刪掉.json文件
然后更新本地索引庫(kù)
pod setup
pod search Load_Big_Image
成功
5 使用中遇到的問(wèn)題詳解
問(wèn)題1 pod --version
遇到了這樣的版本問(wèn)題, 升級(jí)gem
問(wèn)題2 創(chuàng)建spec文件
創(chuàng)建spec文件的時(shí)候,如果遇到這樣的問(wèn)題, 解決方式:
sudo pod
install cocoapods
問(wèn)題3
Failed to connect to GitHub to update the CocoaPods/Specs specs repo - Please check if you are offline, or that GitHub is down
這個(gè)問(wèn)題困擾了我?guī)讉€(gè)小時(shí)库车,在網(wǎng)上找了很多沒(méi)解決巨柒。最后重裝CocoaPods解決了問(wèn)題
問(wèn)題4
Unable to interpret the specified path .podspec
as a podspec (Pod::DSLError).
最后也是查了半天
有個(gè)中文的引號(hào)
這里一定要注意,最好用Xcode打開柠衍,別用文本編輯打開
問(wèn)題4
-
ERROR | file patterns:
說(shuō)明.podspec的source_files有問(wèn)題洋满,繼續(xù)修改