條件:
需要在終端上將工程發布到cocoapods上,這樣才能用cocoapods進行管理。
步驟:
首先,你得有一個pod的賬號 在終端中輸入pod 可以查看關於pod 的命令幫助,輸入pod trunk me 可以查看自己的賬號信息,如果沒有的話先注冊一個。輸入pod trunk register然后根據提示注冊一個即可。
然后,在有賬號之后:
cd 到工程目錄下,以工程名創建一個.podspec文件 例如:
cd Demo ---> pod spec create Demo
這樣就會在工程中出現這樣一個文件
接着vi Demo.podspec 進入文件中進行配置,下面這些具體的格式如何寫,可以查看整File Pattern: http://guides.cocoapods.org/syntax/podspec.html#source_files
需要對 s.summary 寫入對工程的總結
然后s.description 可以寫工程的描述,也可以直接用#來注釋掉。
s.homepage 寫上之前在GitHub上創建的工程的網址,如:https://github.com/xiaowu2016/Demo
s.license我選擇的是下面一個,並把上面的注釋掉,將file => "FILE_LICENSE" 改成file => "LICENSE" 。
s.source 寫上工程的地址,如:https://github.com/xiaowu2016/Demo.git
其他根據自己實際需求進行配置,如果工程中有依賴其他第三方庫也要一並寫上.有不明白的地方可以上GitHub上看看別人的.podspec文件對照進行配置。
例如如下配圖設置:
這些名詞解釋如下:
對了,配置費ARC文件的情況,項目中由於歷史原因,導致有一個私有的pods庫中某幾個文件是在非ARC時代寫的,如果要進行修改工程量浩大,於是乎要對這幾個文件單獨處理,這幾個文件不使用arc其他文件使用arc,網上查了一些資料,只需要對source_file進行修改並排除那幾個不使用ARC的文件就可以了,大致修改如下:
配置完成之后保存並退出,然后在終端上輸入
git add 'Demo.podspec' ( 也可以直接輸 git add )
然后 git commit -m 'add Demo.podspec' 添加到git上
再用 git push同步到遠程端
再創建LICENSE文件
vi LICENSE 直接去網上找一個復制過來,根據需要自己修改一下就能用。
保存並退出
git add 'LICENSE' (或者git add )
git commit -m 'add LICENSE'
git push
然后需要創建工程的tag
git tag '0.0.1'
git add *
git commit -m 'add tag'
git push origin 0.0.1
輸完這些命令之后可以在GitHub的工程里看到創建的tag 如圖
再輸入pod spec lint 來檢測一下是否有錯誤或警告,有則改之,每次本地的工程中有改動並上傳到GitHub上之后需要改變tag 否則就會找不到你所改動的,在改變了tag 之后需要將.podspec文件中的s.version和s.source 的tag 改成同樣的值。
當然出錯時,最好需要只要知道錯在哪兒,下面的操作可以幫助到你:
在檢測你的podspec時候,如果直接用pod spec lint xxx.podspec的話,出現錯誤它只會直接一句紅色的話the spec did not pass validation,due to 1.告訴你的有多少個error和warning,而不會具體的指出你的錯誤出在哪里,這時候你可以在這句指令后面加上參數--verbose 這樣就會告訴你具體的錯誤信息。這樣根據它提示你的錯誤信息去解決就可以了。
如果要查處具體錯誤,請使用 pod spec lint xxx.podspec --verbose
如果 pod spec lint 的時候遇到警告了,請使用 pod trunk push --verbose --allow-warnings
如果沒有錯誤的話,也即當看到*** pass validation,說明驗證通過了,就可以發布了,輸入pod trunk push ,這樣之后的工程再需要你封裝的類庫就可以直接在podfile中進行添加例如:pod search 'Demo' 然后pod install就可以幫你導入了,非常方便
下面是很有價值的干貨:
original Link:http://www.jianshu.com/p/7dd9bfe8ee69
other Link_1: http://www.exiatian.com/cocoapods安裝使用及配置私有庫/
other_link_2: http://blog.csdn.net/stubbornness1219/article/details/50968000
other_link_3: http://www.cocoachina.com/ios/20160301/15459.html
other_link_4: http://www.cocoachina.com/ios/20150228/11206.html