前言
Cocoapods是一個依賴管理工具充坑,使用它可以方便的管理和更新項(xiàng)目中所使用到的第三方庫,也可以管理自己的私有庫染突,讓工程模塊化捻爷。本文主要介紹如何 通過Cocoapods管理私有庫。
正文
主要流程
1份企、建立兩個Git倉庫
2也榄、編寫podSpec文件
3、檢查podspec
4、提交podspec
5甜紫、使用cocoapods引入
6降宅、版本更新
建立兩個GIt 倉庫
一個用于管理私有庫的源碼,一個用于管理podSpec文件囚霸。
cocoapods管理私有庫工作原理為:通過podfile 文件中的git地址拉取podSpec文件腰根,通過podSpec文件中的源碼git地址管理私有庫的源碼,并根據(jù)配置完成相關(guān)依賴拓型。
編寫podSpec 文件
可以選擇自己根據(jù)規(guī)格寫一個podSpec文件(后綴名.podspec)
或者執(zhí)行pod spec create
额嘿,創(chuàng)建一個模板podspec 文件,再根據(jù)需要進(jìn)行修改
格式如下:
Pod::Spec.new do |spec|
spec.name = 'Reachability'
spec.version = '3.1.0'
spec.license = { :type => 'BSD' }
spec.homepage = 'https://github.com/tonymillion/Reachability'
spec.authors = { 'Tony Million' => 'tonymillion@gmail.com' }
spec.summary = 'ARC and GCD Compatible Reachability Class for iOS and macOS.'
spec.source = { :git => 'https://github.com/tonymillion/Reachability.git', :tag => 'v3.1.0' }
spec.source_files = 'Reachability.h,m'
spec.framework = 'SystemConfiguration'
spec.requires_arc = true
spec.libraries = "stdc++"
end
注意:
有些代碼需要引入一些底層庫才能執(zhí)行的劣挫,需要在 spec.libraries
填寫册养,如代碼里有C++代碼,需要引入stdc++,所以填寫spec.libraries = "stdc++"
如需引入如“AFNetworking”之類的三方庫即需要填寫s.dependency = 'AFNetworking'
如需引入framework即需要填寫spec.framework
參數(shù)spec.source
需填寫代碼所在的git地址压固,并指定相應(yīng)的tag或者commit
檢查podspec文件
cocoapod提供了命令行進(jìn)行podspec文件校驗(yàn):
pod lib lint
一般使用時會帶一些參數(shù)球拦,如:
pod lib lint --allow-warnings --use-libraries --verbose
--allow-warnings
:允許有警告
--use-libraries
使用依賴庫
--verbose
提供更詳細(xì)的信息方便追蹤問題。
注意:在podspec文件所在目錄執(zhí)行該命令邓夕。
提交podspec
完成podspec文件的校驗(yàn)后刘莹,將其push到其所在的git倉服務(wù)器端。
通過一下命令行添加本地文件
pod repo add 文件名 [podspec文件的git地址]
使用cocoapods引入
在Podfile加入podsepc文件的git地址焚刚,并填寫pod 'podSpec文件名 '
如:
source 'https://github.com/CocoaPods/Specs.git'
platform:ios,'8.0'
target "Fenqile" do
pod 'AFNetworking', '~> 3.1.0'
source 'http://gitlab.fenqile.com/public_iOS/podSpecRepo.git'
pod 'podSpec文件名 '
end
再通過pod install 命令引入
版本更新
當(dāng)模塊化的代碼需要更改時点弯,更改podspec文件中的spec.source
還有版本號。
接著在podspec文件所在的目錄下執(zhí)行矿咕,進(jìn)行更新
pod repo push 文件名 podspec文件 --allow-warnings --use-libraries --verbose
完成之后執(zhí)行pod update
命令進(jìn)行更新抢肛。