spec簡介
檢視本地pod倉庫
~/.cocoapods/repos
Spec檔案:描述架構資訊
pod setup: 将遠端倉庫的.spec檔案拉取到本地
pod install: 先從本地找到.spec檔案
eg: pod install AFNetWorking, 系統會從本地倉庫找到AFNetworking的spec描述檔案,如果本地沒找到,就會從遠端倉庫拉取相應的檔案到本地。
--------------------------------------------本地私有庫制作--------------------------------------------
操作方法:
打開終端,
1.在桌面建立PrivateStorage,切換到該目錄下:
cd /Users/huangkunpeng/Desktop/PrivateStorage
2.建立私有庫名稱’HKPUtils’
pod lib create HKPUtils
3.選擇問題答案:
what platform do you want to use? 選擇iOS
What language do you want to use? 選擇ObjC
Would you like to include a demo application with your library?選擇YES
Which testing frameworks will you use? [ Specta / Kiwi / None ] 選擇None
Would you like to do view based testing? [ Yes / No ] 選擇No
What is your class prefix? 設定類的字首(這裡我填寫HKP)
項目檔案夾介紹
Development Pods (本地私有庫,開發時候用)
ReplaceMe.m (自定義的類放在ReplaceMe.m所在的Classes檔案夾裡面,然後把ReplaceMe.m删掉)
Example for HKPUtils (本地調試運作的demo)
添加本地私有庫到主工程
1.當編譯成功後,本地就有了私有庫。然後切換到主工程,把私有庫添加到主工程。
2.将 pod ‘HKPUtils’, :path => ‘…/’ 拷貝到主工程的 Podfile中,同時修改“…/”路徑,路徑為檔案在你項目中的路徑。
注意:pod底層源碼是通過Ruby實作。
編譯本地私有庫不通過原因
情景:假如現在要對項目中的網絡庫進行元件化,因為網絡庫是用了AFN,而且引用了其他的本地私有庫,并且在Podfile中使用了use_frameworks!,結果編譯失敗。
原因:use_frameworks! :
如果使用use_frameworks! ,就打包成framework,在pod->header找不到頭檔案。
如果不使用use_frameworks!,會把以下代碼編譯成靜态庫。
target 'HKPUtils_Example' do
pod 'HKPUtils', :path => '../'
target 'HKPUtils_Tests' do
inherit! :search_paths
end
end
解決方法:注釋掉use_frameworks!
--------------------------------------------華麗分隔線-------------------------------------------------------------------------------
遠端庫制作
本地私有庫搭建完,進入遠端庫制作階段。
1.進入到項目目錄根路徑
cd 項目目錄根路徑
2.送出到緩沖區
git add .
3、送出代碼
git commit -m '初始化HKPUtils'
4、遠端連接配接
git remote add origin https://{填寫你的代碼倉庫位址}
5、 強制送出
git push origin master -f
送出完代碼後,修改HKPUtils.podspec
關鍵要修改為遠端倉庫位址:
s.source = { :git => 'https://github.com/huangkunpeng/HKPUtils.git', :tag => s.version.to_s }
還有s.homepage ,s.author,s.source_files等資訊
根據自己的情況修改資訊,如下圖:
6、驗證上一步編輯的 HKPUtils.podspec檔案
pod lib lint
7.打版本号
git tag 0.1.0
git push --tags
将podspec檔案送出到本地的私有索引庫
檢視本地已存在的索引庫
pod repo
如果不存在‘HKPUtils’,就執行以下指令。否則跳過這步
pod repo add HKPUtils https://{填寫遠端倉庫位址}
将HKPUtils私有庫的描述檔案HKPUtils.podspec送出到遠端倉庫中
pod repo push HKPUtils HKPUtils.podspec
參考資料
iOS開發 - CocoaPods遠端私有庫從0到1