iOS - cocoa pods 的使用

cocoapods官網查看

  • 創建Podspec描述文件,cd 到文件的跟目錄下,在終端中輸入pod spec create 描述文件名稱,一般描述文件名稱最好和項目名稱一致。

pod spec create TestLib

Snip20171003_1.png

  • 在項目目錄中可以查看到已創建成功的spec描述文件
Snip20171003_2.png
  • 用Xcode工具 打開項目中的spec描述文件 在文件中 需要設置以下內容:
  s.name         = "TestLib"  // 名稱
  s.version      = "0.0.1"    // 版本
  s.summary      = "A short description of TestLib."  // 簡介
  s.description  = “TestLib, 這個是詳細描述 一定要注意! 字數比s.summary長 ”

  s.homepage     = "https://github.com/Mrhuangchina/testFiel" // 首頁 以TestLib結尾。即以spec描述文件名稱結尾 可以換成倉庫地址
  s.license      = "MIT"
  s.author             = { "Mrhuangchina" => "xxxx@qq.com" } //這里的是你的Github里的名字 還要你的登錄帳號郵箱
  Or just: s.author    = "Mrhuangchina"
  s.authors            = { "Mrhuangchina" => "xxxx@qq.com" }  //這里的是你的Github里的名字 還要你的登錄帳號郵箱
       // source 這里 將改成你的spec描述文件的倉庫地址  tag 和s.version 版本 保持一致 也就是Github倉庫中的releases版本號
  s.source       = { :git => "https://github.com/Mrhuangchina/testFiel.git", :tag => "#{s.version}" }
        // 在指定該的文件中 ** 通配符 標示目錄 *.{h,m}:* 代表的是文件夾
  s.source_files  = "Classes", "Classes/**/*.{h,m}"
  s.exclude_files = "Classes/Exclude"

Pod::Spec.new do |s|
  s.name             = "PodTestLibrary"    #名稱
  s.version          = "0.1.0"             #版本號
  s.summary          = "Just Testing."     #簡短介紹,下面是詳細介紹
  s.description      = <<-DESC
                       Testing Private Podspec.
 
                       * Markdown format.
                       * Don't worry about the indent, we strip it!
                       DESC
  s.homepage         = "https://coding.net/u/wtlucky/p/podTestLibrary"                           #主頁,這里要填寫可以訪問到的地址,不然驗證不通過
  # s.screenshots     = "www.example.com/screenshots_1", "www.example.com/screenshots_2"           #截圖
  s.license          = 'MIT'              #開源協議
  s.author           = { "wtlucky" => "wtlucky@foxmail.com" }                   #作者信息
  s.source           = { :git => "https://coding.net/wtlucky/podTestLibrary.git", :tag => "0.1.0" }      #項目地址,這里不支持ssh的地址,驗證不通過,只支持HTTP和HTTPS,最好使用HTTPS
  # s.social_media_url = 'https://twitter.com/<twitter_username>'                       #多媒體介紹地址
 
  s.platform     = :ios, '7.0'            #支持的平臺及版本
  s.requires_arc = true                   #是否使用ARC,如果指定具體文件,則具體的問題使用ARC
 
  s.source_files = 'Pod/Classes/**/*'     #代碼源文件地址,**/*表示Classes目錄及其子目錄下所有文件,如果有多個目錄下則用逗號分開,如果需要在項目中分組顯示,這里也要做相應的設置
  s.resource_bundles = {
    'PodTestLibrary' => ['Pod/Assets/*.png']
  }                                       #資源文件地址
 
  s.public_header_files = 'Pod/Classes/**/*.h'   #公開頭文件地址
  s.frameworks = 'UIKit'                  #所需的framework,多個用逗號隔開
  s.dependency 'AFNetworking', '~> 2.3'   #依賴關系,該項目所依賴的其他庫,如果有多個需要填寫多個s.dependency
end</twitter_username>
Snip20171003_4.png
  • 在上述設置spec描述文件中,我們看到tag => "#{s.version} tagspec描述文件版本號需要一致,但我們并沒有設置tag,所以接下來需要設置tag
git tag '0.0.1'   //設置tag 并且tag值必須和spec描述文件version一致
git push --tags  // 將tag 值 push 到遠程倉庫。
Snip20171003_5.png
Snip20171003_6.png
  • cocoapods官網中找到GUIDES里并找到Getting setup with Trunk 注冊Trunk,其Trunk作用則是將我們之前創建的spec描述文件上傳到cocoapods遠程索引庫中。
$ pod trunk register orta@cocoapods.org 'Orta Therox' --description='macbook air'  // 即下面這行解釋  description 描述信息(可寫可不寫)
$ pod trunk register 郵箱地址 '名字' --verbose  //--verbose 打印一些詳細信息

Snip20171003_8.png

在你剛剛填寫的郵箱中打開收到的郵件注意有可能會在你的垃圾箱里,找到郵件打開里面的鏈接則完成顯示如下圖表示成功:

Snip20171003_11.png

依據剛剛驗證的網站中的提示:在終端中輸入:pod trunk push 描述文件名稱

Snip20171003_12.png
-> TestLib (0.0.1)
    - ERROR | file patterns: The `source_files` pattern did not match any file.

[!] The spec did not pass validation, due to 1 error.

這個是在指定共享的類庫時, 文件路徑不對, 也就是設置 s.source_files字段時, 發生了錯誤, 這里的路徑是相對于TestLib.podspec文件的, 如果是與TestLib.podspec同級的文件夾, 直接寫文件夾名稱即可, 如:

s.source_files = "TestLib"

如果有多級目錄, 一定要逐級添加. 這里也可以這么寫:

s.source_files = "TestLib/*.{h,m}"

需要注意的是s.source_files參數,如果配置為s.source_files = '/*.{h,m}’,會報錯:

- ERROR | File Patterns: File patterns must be relative and cannot start with a slash (source_files).

其它可能的報錯:

 - ERROR | [iOS] file patterns: The `source_files` pattern did not match any file.
  • pod search 項目名稱 來驗證是否上傳到檢索庫成功
    • 搜索不到
      Unable to find a pod with name, author, summary, or description matching TestLib.
  • 解決辦法:
    • 1.pod install --repo-update
    • 2.或者全部刪除:使用命令:rm ~/Library/Caches/CocoaPods/search_index.json
    • 3.重新search GKFramework

可參考 cocoapods Error

  • —————————————————————————————
  • cocoapods 本地私有庫的使用

    • 在本地私有庫的文件中先創建一個spec文件
      Snip20171007_1.png
    • 修改spec文件中的source_file的路徑,因為是本地私有庫文件 所以直接刪除遠程庫配置的git路徑中的URL
      Snip20171007_2.png
    • 進入到需要引用本地私有庫的工程文件中,并且創建Podfile文件
      Snip20171007_3.png
    • 修改Podfile文件,:patch =>'../TestLib/TestLib'代表在某個文件路徑下尋找到spec文件,否則會自動在遠程索引庫中去尋找。
      Snip20171007_5.png
    • Pod install安裝本地私有庫文件,并可以在工程文件中使用。
  • —————————————————————————————
  • cocoapods 遠程私有庫的使用

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 228,119評論 6 531
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 98,382評論 3 415
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 176,038評論 0 373
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 62,853評論 1 309
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 71,616評論 6 408
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,112評論 1 323
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,192評論 3 441
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,355評論 0 288
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 48,869評論 1 334
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 40,727評論 3 354
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 42,928評論 1 369
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,467評論 5 358
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,165評論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,570評論 0 26
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,813評論 1 282
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,585評論 3 390
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 47,892評論 2 372

推薦閱讀更多精彩內容