轉(zhuǎn)自:http://www.cnblogs.com/XYQ-208910/p/6214066.html
一试和、感慨
說實(shí)話,創(chuàng)建這個(gè)CocoaPods私有庫纫普,我愣是搞了兩個(gè)星期阅悍,創(chuàng)建的過程中,自己的感情波動(dòng)是這樣的:激情四射---->有點(diǎn)困惑----->極度困惑----->有點(diǎn)失望----->非常失望----->想放棄了----->放棄了----->不甘心,一個(gè)星期后又倒騰起來了----->還是失望----->向朋友求助----->問題解決昨稼,遲來的興奮---->成功了节视,急切的想給大家分享成果〖偎ǎ可以說寻行,這個(gè)過程真是一波三折,遇到的各種坑讓我百感交集但指。還好寡痰,我最終堅(jiān)持到底,成功了棋凳,在此感謝我的好朋友@Kakarotto-卡卡羅特,下面我就給大家分享一下教程连躏。
二剩岳、說說遇到的坑:
1、本地的私有倉庫驗(yàn)證通過入热,但是遠(yuǎn)程倉庫上的私有倉庫驗(yàn)證不通過拍棕,路經(jīng)不對,報(bào)Error[iOS] file patterns: The source_files
pattern did not match any錯(cuò)誤
解決辦法:重新打開xxx.podspec文件編輯一下勺良,確定共享文件路徑?jīng)]有錯(cuò)誤绰播,然后再上傳到github上驗(yàn)證。
source_files文件格式有幾種設(shè)置方法:
s.source_files = 'Classes/.{h,m}'
s.source_files = 'Classes/publicClass.{h,m}'
s.source_files = 'Classes'
s.source_files = 'Classes//.{h,m}'
2尚困、上傳xxx.podspec到github和給xxx.podspec打tag順序搞反了蠢箩,驗(yàn)證不通過
解決辦法:必須先將本地文件夾所有的文件上傳到github上,然后再給xxx.podspec打上tag事甜,打tag方式也有兩種方法:
命令行方式:
git tag -m "注釋" 1.0.0
git push --tags
直接在github上點(diǎn)擊release進(jìn)入創(chuàng)建tag:
3谬泌、xxx.podsepc、LICENSE逻谦、Demo掌实、pulcicLib它們幾個(gè)沒有放在同一層級上,驗(yàn)證不通過
解決辦法:將他們放到同一個(gè)文件夾的同一個(gè)層級上邦马,例如
4贱鼻、最后所有的驗(yàn)證都通過了也上傳成功了宴卖,結(jié)果使用pod search仍然搜索不到,是因?yàn)閟earch_index.json文件重復(fù)了邻悬,需要先刪除再搜索
解決辦法(此處是在成功安裝CocoaPods嘱腥,但不能pod search搜素類庫的情況下探討問題):
4.1 執(zhí)行pod setup
其實(shí)在你安裝CocoaPods執(zhí)行pod install時(shí),系統(tǒng)會默認(rèn)操作pod setup拘悦,然而由于中國強(qiáng)大的墻可能會pod setup不成功齿兔。這時(shí)就需要手動(dòng)執(zhí)行pod setup指令,如下:
終端輸入:pod setup
會出現(xiàn)Setting up CocoaPods master repo 础米,稍等幾十秒分苇,最底下會輸出setup completed。說明執(zhí)行pod setup成功屁桑。
如果pod search操作還是搜索失敗医寿,如下:
終端輸入:pod search AFNetworking
輸出:Unable to find a pod with name,author,summary,or descriptionmastching 'AFNetworking' 這時(shí)就需要繼續(xù)下面的步驟了。
4.2 刪除~/Library/Caches/CocoaPods目錄下的search_index.json文件
pod setup成功后蘑斧,依然不能pod search靖秩,是因?yàn)橹澳銏?zhí)行pod search生成了search_index.json,此時(shí)需要?jiǎng)h掉竖瘾。
終端輸入:rm ~/Library/Caches/CocoaPods/search_index.json
刪除成功后沟突,再執(zhí)行pod search。
4.3 執(zhí)行pod search
終端輸入:pod search sfneteorking (不區(qū)分大小寫)
輸出:Create search index for spec repo 'master'..Deno!捕传,稍等片刻······就會出現(xiàn)所有帶有afnetworking字段的類庫惠拭。
5、驗(yàn)證私有倉庫時(shí)如果出現(xiàn)gcc編譯錯(cuò)誤:[-Werror, -Wnon-modular-include-in-framework-module].造成xcode build failed
解決辦法是加參數(shù):--use-libraries
$ pod lib lint xxx.podspec --use-libraries
$ pod spec lint xxx.podspec --use-libraries
$ pod trunk push --use-libraries
提示:最后提一個(gè)小策略庸论,如果驗(yàn)證時(shí)報(bào)錯(cuò)了职辅,可以在驗(yàn)證時(shí)加上后綴--verbose來查看錯(cuò)誤的具體位置
三、簡述大致流程
在github上創(chuàng)建項(xiàng)目聂示,復(fù)制項(xiàng)目的鏈接路徑域携,例如:https://github.com/xiayuanquan/XYQCocoaPods.git;
使用命令行或者sourceTree將項(xiàng)目克隆到本地新建的一個(gè)文件夾中;
cd進(jìn)入本地該文件夾,將自己之前的工程文件(demo)以及共享文件(共享庫Lib)拖入其中鱼喉,并創(chuàng)建私有倉庫秀鞭,例如:pod spec create cocoaPodsName;
編輯私有倉庫信息(使用文本編輯器或者sublime等)
編輯結(jié)束保存,并驗(yàn)證本地的私有倉庫是否有效(—allow-warnings可以消除警告)例如:pod lib lint cocoaPodsName.podspec —allow-warnings蒲凶;
驗(yàn)證有效后气筋,然后再將本地該文件夾中所有的文件push到github上
使用git tag(此方法操作后再push上傳一次)或者直接在github上點(diǎn)擊release進(jìn)入后創(chuàng)建release并給私有倉庫打上tag
注冊trunk,例如:pod trunk register 郵箱 ‘用戶名’ —descripttion=‘描述’旋圆,注意:郵箱為github上的登錄郵箱宠默、用戶名為github上的用戶名
接收發(fā)送到郵箱的鏈接,點(diǎn)擊進(jìn)入后注冊成功
查看注冊的個(gè)人信息灵巧,例如:pod trunk me
驗(yàn)證上傳到github上的私有倉庫是否有效(—allow-warnings可以消除警告搀矫,例如:pod spec lint cocoaPodsName.podspec —allow-warnings
將私有倉庫推送到CocoaPods上抹沪,例如:pod trunk push cocoaPodsName.podspec
使用pod search cocoaPodsName搜索即可
四、詳細(xì)步驟流程如下:
(1)在github上創(chuàng)建項(xiàng)目瓤球,復(fù)制項(xiàng)目的鏈接路徑融欧,例如:https://github.com/xiayuanquan/XYQCocoaPods.git;
![Uploading 791499-20161223105325245-1157266931_517404.png . . .]
(2)使用命令行或者sourceTree將項(xiàng)目克隆到本地新建的一個(gè)文件夾中;
(3)cd進(jìn)入本地該文件夾,將自己之前的工程文件(demo)以及共享文件(共享庫Lib)拖入其中卦羡,并創(chuàng)建私有倉庫噪馏,例如:pod spec create cocoaPodsName;
注意:下面說的是盡量都保持一樣,其實(shí)绿饵,此處私有庫名稱必須和共享文件夾名稱一樣欠肾,而和github項(xiàng)目名一不一樣,要求不那么嚴(yán)格
(4)編輯私有倉庫信息(使用文本編輯器或者sublime等,注意:引號不能搞錯(cuò)了拟赊,是英文格式的"",不是中文格式“”)
(5)編輯結(jié)束保存刺桃,并驗(yàn)證本地的私有倉庫是否有效(—allow-warnings可以消除警告)例如:pod lib lint cocoaPodsName.podspec —allow-warnings;
(6)驗(yàn)證有效后吸祟,然后再將本地該文件夾中所有的文件push到github上
(7)使用git tag(此方法操作后再push上傳一次)或者直接在github上點(diǎn)擊release進(jìn)入后創(chuàng)建release并給私有倉庫打上tag
(8)注冊trunk瑟慈,例如:pod trunk register 郵箱 ‘用戶名’ —descripttion=‘描述’,注意:郵箱為github上的登錄郵箱屋匕、用戶名為github上的用戶名
![Uploading 791499-20161223110513151-1037094054-3_258257.png . . .]
(9)接收發(fā)送到郵箱的鏈接葛碧,點(diǎn)擊進(jìn)入后注冊成功
(10)查看注冊的個(gè)人信息,例如:pod trunk me
(11)驗(yàn)證上傳到github上的私有倉庫是否有效(—allow-warnings可以消除警告炒瘟,例如:pod spec lint cocoaPodsName.podspec —allow-warnings
(12)將私有倉庫推送到CocoaPods上吹埠,此處時(shí)間會久一點(diǎn),請耐心等待疮装,例如:pod trunk push cocoaPodsName.podspec
(13)使用pod search cocoaPodsName搜索即可