不知道大家有沒(méi)有注意到Cocoapods Spec目錄結(jié)構(gòu)蛮放,如下圖缩抡。
Specs目錄下,并不是直接是以庫(kù)的名稱命名的文件夾包颁,而是分了3層目錄瞻想,分別以0-f來(lái)命名压真。比如SDWebImage的位置是1/1/7/SDWebImage/0.4.2/SDWebImage.podspec。
其實(shí)之前就發(fā)現(xiàn)了這個(gè)問(wèn)題蘑险,但是一直沒(méi)去想為什么要這樣滴肿,它是以哪種方式來(lái)確定庫(kù)的podspec的位置。
直到今天佃迄,有個(gè)同事問(wèn)我泼差,怎么用shell腳本將指定庫(kù)的podsepc給拷貝出來(lái)。最開始我試了下用find命令呵俏,由于specs目錄下的文件太多堆缘,查找得出結(jié)果花了好幾秒。然后我開始重新想了下這個(gè)問(wèn)題普碎,料定目錄結(jié)構(gòu)肯定是有規(guī)律的吼肥。先是用google搜索一番,沒(méi)有相關(guān)的資料麻车。后來(lái)又突然想到了MD5潜沦,于是把某個(gè)庫(kù)的名稱做了md5,發(fā)現(xiàn)md5前三位
正是其所對(duì)應(yīng)的三層目錄绪氛,竊喜??。因此涝影,如果有其他庫(kù)md5的前三位相同枣察,那么他們就在同一目錄下。
比如SDWebImage的md5是1173B6117A2CF4A6756F761AEDAE9D2C
燃逻,那么其目錄結(jié)構(gòu)就是1/1/7序目。
而一般來(lái)說(shuō),自己創(chuàng)建的私有倉(cāng)庫(kù)的層級(jí)是這樣的伯襟。
Specs/mylib/0.0.1/mylib.podspec
那為什么要多加幾層目錄呢猿涨?猜想可能是Cocoapods中的specs倉(cāng)庫(kù)實(shí)在是太大,如果都平級(jí)的話姆怪,找起來(lái)效率不高叛赚,并且很麻煩。