关�安装Cocoapods
Cocoapods(�简称为pod
)是一个Ruby程�, 当然�以在Gem里找到并安装.
但如�我们系统里有统一的包管�器Homebrew(�简称brew
), 更应该ç»�由它æ�¥å®‰è£…, è¿™æ ·ä¹Ÿä¾¿äº�统一的管ç�†ç‰ˆæœ¬, 以é�¿å…�ä¸�å�Œçš„包在ä¸�å�Œçš„程åº�管ç�†ä¸‹çš„混乱局é�¢.
通过brew
安装pod
就很简�:
brew install cocoapods
�级Cocoapods
éš�ç�€Xcodeå�ŠSDKçš„ä¸�æ–å�‡çº§, Cocoapods也在跟ç�€ä¸�æ–å�‡çº§ä»¥é€‚应项目生æˆ�.
所以我们一定��时更新pod
版本, 以�在Xcode�级�, 生�的xcodeproj
å’Œpod
有兼容问题.
如上所述, 通过brew
安装的包, 也应该通过brew
�管�版本, �级也很简�:
# 先更新下brew的formula信�:
brew update
# 如�Cocoapods有�用更新上�的命令结�会展示出�.
# 想查看全部�更新的包:
brew outdated
# æ›´æ–°Cocoapods
brew upgrade cocoapods
CDN
æ–°çš„pod(1.9.x)已支æŒ�CDNåŠ é€Ÿ, ä¸�过目å‰�也没用出速度区别æ�¥~
�以看到的改�在~/.cocoapods/repos/目录下,
- 旧的 master仓库/trunk仓库 已�没了, �在默认仓库�为cocoapods.
- æ–°å¢�一个trunk文件夹, 类别为CDN (https://cdn.cocoapods.org/), æ¤ç›®å½•é��git仓库.
�际使用下, pod install会�CDN读�以确定安装的库的版本.
也就是说, 库版本的确定�在的路径是:
Podfile.lock > CDN > cocoapods repo
如需更新必须使用pod update
.
利用指定repoæ�¥åŠ 速
指定repo本是å�¯ä»¥æ·»åŠ ç§�有Spec仓库的.
例如我曾在�项目里用到:
Podfile:
source 'https://github.com/CocoaPods/Specs.git'
source 'https://github.com/blodely/LYSpecs.git'
source 'https://e.g.some.company.git.server/PrivateSpecs.git'
�指定除了官方仓库外, 还有自己的LYSpecs仓库(里�有一些未�到官方的libs), 和公�的�有库(包�一些模�化的库, 但仅�公�内部访问).
source就�以指定多��.
而pod
仓库在GitHub, 对äº�国内用户æ�¥è¯´è®¿é—®é€Ÿåº¦ä¸�是特别å�‹å¥½, 特别是Spec仓库目录å�Šæ–‡ä»¶ä¼—多, 克隆和拉å�–都很慢, å®¹æ˜“å› ç½‘ç»œæ³¢åŠ¨æ–å¼€.
è¿™æ ·æˆ‘ä»¬å°±å�¯ä»¥ç”¨ä¸€äº›å›½å†…çš„Cocoapods specçš„é•œåƒ�æ�¥ä½œä¸ºæº�.
应用起�很简�:
# 在Podfileé¦–è¡ŒåŠ ä¸Šä½ æ‰€æƒ³ç”¨çš„é•œåƒ�地å�€
# 清��
source 'https://mirrors.tuna.tsinghua.edu.cn/git/CocoaPods/Specs.git'
# 或者ç �云的æº�
source 'https://gitee.com/mirrors/CocoaPods-Specs.git'
# 或者其他
注�找信得过�哦!~
��没什么大问题的情况下, 大家都使用官方�.
关�Repo仓库
用过pod search
�pod repo add
, �能会找到在路径~/.cocoapods/repos/
下的一些仓库.
它们事�上就是一个git
管ç�†çš„仓库, 包å�«äº†æ‰€æœ‰è¢«æ��上å�»çš„pod库的specç‰ä¿¡æ�¯.
所以当我们对一个项目的Podfile�行pod install
命令时, 它会知��一个pod库应该�哪���.
search的索引
pod
çš„spec仓库如æ¤å¤�æ�‚而缓慢, æ�œç´¢å¦‚æ�œæ˜¯ç›´æ�¥ä»�ä¸è¿›è¡Œ, 那效ç�‡ä¼šå¤ªä½�.
所以pod
çš„å�šæ³•æ˜¯, æ ¹æ�®ä»“库创建一个用äº�æ�œç´¢çš„索引文件(index), 然å��使用索引æ�¥æ�œç´¢(pod search
).
这个文件��~/Library/Caches/CocoaPods/search_index.json
.
当首次克隆完spec仓库å��执行æ�œç´¢æ—¶, æˆ–æ˜¯æ·»åŠ äº†æ–°çš„spec仓库å��执行æ�œç´¢æ—¶, 它都会出ç�°ä¸€ä¸ªCreating search index for spec repo 'xxx'..
çš„ç‰å¾…过程.
如若é�‡åˆ°ç´¢å¼•æ–‡ä»¶ä¸�æ£ç¡®çš„æƒ…å†µæ— æ³•search, å�¯ä»¥åˆ 除该index, 让podé‡�新生æˆ�一个, æ�¥ä¿®å¤�该问题.
Author
Luo Yu
luoyu@luoyu.space
Wednesday, July 8, 2020