做的項目多了,通過CocoaPods使用第三方庫的次數就越多。例如AFNetworking,SDAutoLayout,MJRefresh,SDWebImage等等。于是很好奇這些代碼是怎么上傳到CocoaPods的呢?
網上的教程很多,說得也很詳細。但是時間久遠,有些步驟不適用了,在嘗試的過程中遇到了很多問題,花了不少時間去解決并成功實現了。于是我重新整理了這個過程并挑選出比較詳細的教程,只需花10分鐘左右的時間就能實現,今天就跟大家分享一下這份樂趣。
一、在Github上面新建一個項目
關于這個,有篇博客寫得很詳細,這步也不困難,大家可以點擊參考鏈接,跟著里面的第一第二步實現,其他內容有興趣的可以看看。
二、新建一個項目的podspec文件
這步是最容易出問題的,也是最核心的地方。我采用的是最笨的方法。
首先使用終端cd到步驟一的倉庫文件夾,例如下圖是我通過步驟一生成的文件夾
然后通過vim DFTextStyle來生成一個文本(名字改成你們的項目名),然后修改文件的后綴為podspec。
如下圖所示,其中的LICENSE和README.md文件是通過步驟一生成的,DFTextStyle.h和.m文件是我放進去想讓別人pod得到的
然后使用SublimeText軟件打開你的podspec文件來進行修改,這里需要注意!!!如果使用自帶的文本編輯器去修改,檢驗的時候會報以下的格式錯誤,這里花了我不少時間去解決。
我的pod spec文件內容如下
Pod::Spec.new do |s|
s.name = 'DFTextStyle'
s.version = '1.0.2'
s.license = 'MIT'
s.summary = 'A Text in iOS.'
s.homepage = 'https://github.com/954788/DFTextStyle'
s.authors = { '954788' => '569676974@qq.com' }
s.source = { :git => "https://github.com/954788/DFTextStyle.git", :tag => "1.0.2"}
s.requires_arc = true
s.ios.deployment_target = '8.0'
s.source_files = "DFTextStyle", "*.{h,m}"
end
大家可以把這部分內容拷貝進去,然后根據實際情況去作修改。
s.name 是你的項目名
s.version 是你項目的版本號
s.summary 是簡單的描述
s.homepage 是你這個項目的Github地址
s.authors 是作者和郵箱
s.source 是下面這個HTTPS地址
注意!!!如果后面的tag描述不對,會出現以下警告,只需把tag對上你在podspec文件里面填的版本號就可以了。
s.requires_arc 是否要求arc
s.ios.deployment_target 最低要求的系統版本
s.source_files 你項目文件名和里面的內容
注意!!!這里描述不當會出現以下報錯
我嘗試過多種寫法,最后只有這種寫法沒有報錯,當然也歸功于這個demo項目里面文件不多。當你的項目文件復雜時,需要用另一種表述方式,這里告訴大家一個小tips,你pod到本地的第三方庫都會有podspec文件的,打開看看參考學習吧。
當然還有更多的描述方式,大家可以通過pod spec create DFTextStyle這個命令生成官方的pod spec文件查看(文件名換成你們的項目名),也可以上官網查看。
三、上傳代碼到CocoaPods
來到這一步,意味著所需的文件都有了:LICENSE、README.md、你的項目代碼、podspec文件,就可以執行這步了。
這里使用Trunk的方式,詳細教程點擊參考鏈接,里面說的很詳細,需要注意的是,教程里面的2.1我們在上一步已經實現了。
還有這個教程中的git tag '1.0.0'需填寫你在podspec文件里面的項目版本號
然后跟著教程去檢驗和提交代碼就可以了,中途會遇到的問題已在上面列出,大家操作過程中遇到新的問題可以在下方留言
四、通過Pod下載代碼到項目中
來到這步,就是檢驗我們努力成果的時候了。
cd到需要引入這個代碼的項目,通過vim生成Podfile文件,填寫你的項目名,這里以我的demo為例
然后使用pod install就可以了。
最后在項目中使用那些方法就大功告成了!
同樣的,這篇文章是為了滿足我好奇心和起到拋磚引玉的作用,對這方面感興趣的可以去查閱更多的資料,嘗試不同的玩法,實在是樂趣多多。
感興趣的朋友可以在下方留言分享你的經驗或想法。