日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

cocopods

發(fā)布時(shí)間:2023/12/13 编程问答 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 cocopods 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

一、什么是CocoaPods

1、為什么需要CocoaPods

在進(jìn)行iOS開發(fā)的時(shí)候,總免不了使用第三方的開源庫,比如SBJson、AFNetworking、Reachability等等。使用這些庫的時(shí)候通常需要:

?

  • 下載開源庫的源代碼并引入工程
  • 向工程中添加開源庫使用到的framework
  • 解決開源庫和開源庫以及開源庫和工程之間的依賴關(guān)系、檢查重復(fù)添加的framework等問題
  • 如果開源庫有更新的時(shí)候,還需要將工程中使用的開源庫刪除,重新執(zhí)行前面的三個(gè)步驟,頓時(shí)頭都大了。。。

?

自從有了CocoaPods以后,這些繁雜的工作就不再需要我們親力親為了,只需要我們做好少量的配置工作,CocoaPods會為我們做好一切!

2、什么是CocoaPods

CocoaPods是一個(gè)用來幫助我們管理第三方依賴庫的工具。它可以解決庫與庫之間的依賴關(guān)系,下載庫的源代碼,同時(shí)通過創(chuàng)建一個(gè)Xcode的workspace來將這些第三方庫和我們的工程連接起來,供我們開發(fā)使用。

使用CocoaPods的目的是讓我們能自動化的、集中的、直觀的管理第三方開源庫。

?

二、安裝CocoaPods

1、安裝

CocoaPods是用Ruby實(shí)現(xiàn)的,要想使用它首先需要有Ruby的環(huán)境。幸運(yùn)的是OS X系統(tǒng)默認(rèn)的已經(jīng)可以運(yùn)行Ruby了,因此我們只需要執(zhí)行以下命令:

[objc]?view plaincopy
  • $?sudo?gem?install?cocoapods??
  • CocoaPods是以Ruby gem包的形式被安裝的。在安裝執(zhí)行的過程中,可能會問我們是不是更新rake,輸入y即可。這是因?yàn)閞ake gem包會在安裝的過程中檢查更細(xì),如果有可用的新版本就會出現(xiàn)剛才的選項(xiàng)。

    ?

    在安裝進(jìn)程結(jié)束的時(shí)候,執(zhí)行命令:

    [objc]?view plaincopy
  • $?pod?setup??
  • 如果沒有報(bào)錯(cuò),就說明一切安裝就成功了!

    ?

    2、安裝過程中可能遇到的問題

    ①執(zhí)行完install命令半天沒反應(yīng)

    這有可能是因?yàn)镽uby的默認(rèn)源使用的是cocoapods.org,國內(nèi)訪問這個(gè)網(wǎng)址有時(shí)候會有問題,網(wǎng)上的一種解決方案是將遠(yuǎn)替換成淘寶的,替換方式如下:

    [objc]?view plaincopy
  • $?gem?sources?--remove?https://rubygems.org/??
  • //等有反應(yīng)之后再敲入以下命令??
  • $?gem?sources?-a?http://ruby.taobao.org/??
  • 要想驗(yàn)證是否替換成功了,可以執(zhí)行:

    [objc]?view plaincopy
  • $?gem?sources?-l??
  • 正常的輸出是:

    [objc]?view plaincopy
  • ***?CURRENT?SOURCES?***??
  • ??
  • http://ruby.taobao.org/??
  • ?

    ②gem版本過老

    ?

    gem是管理Ruby庫和程序的標(biāo)準(zhǔn)包,如果它的版本過低也可能導(dǎo)致安裝失敗,解決方案自然是升級gem,執(zhí)行下述命令即可:

    [objc]?view plaincopy
  • $?sudo?gem?update?--system??
  • ?

    ③安裝完成后,執(zhí)行pod setup命令時(shí)報(bào)錯(cuò):

    [objc]?view plaincopy
  • /Users/wangzz/.rvm/rubies/ruby-1.9.3-p448/lib/ruby/site_ruby/1.9.1/rubygems/dependency.rb:298:in?`to_specs':?Could?not?find?'cocoapods'?(>=?0)?among?6?total?gem(s)?(Gem::LoadError)??
  • ????from?/Users/wangzz/.rvm/rubies/ruby-1.9.3-p448/lib/ruby/site_ruby/1.9.1/rubygems/dependency.rb:309:in?`to_spec'??
  • ????from?/Users/wangzz/.rvm/rubies/ruby-1.9.3-p448/lib/ruby/site_ruby/1.9.1/rubygems/core_ext/kernel_gem.rb:53:in?`gem'??
  • ????from?/Users/wangzz/.rvm/rubies/ruby-1.9.3-p448/bin/pod:22:in?`<main>'??
  • 這就是路徑設(shè)置的問題,可以通過執(zhí)行:

    [objc]?view plaincopy
  • $?rvm?use?ruby-1.9.3-p448??
  • 解決該問題。

    ?

    3、升級CocoaPods

    升級很簡單,再次執(zhí)行安裝命令即可:

    [objc]?view plaincopy
  • $?sudo?gem?install?cocoapods??
  • 需要注意的是,如果安裝的時(shí)候使用了sudo,升級的時(shí)候一樣需要使用該關(guān)鍵字,不然升級完了以后又會出現(xiàn)路徑不匹配問題。

    ?

    ?

    三、使用CocoaPods

    如果之前做的一切順利,接下來就可以體驗(yàn)體驗(yàn)CocoaPods的神奇之處了,需要經(jīng)過以下幾步:

    為了演示這個(gè)過程,我創(chuàng)建了一個(gè)名為CocoaPodsTest的工程。

    1、創(chuàng)建Podfile

    CocoaPods的一切都是從一個(gè)名為Podfile的文件開始的,我們需要先創(chuàng)建這個(gè)文件。個(gè)人習(xí)慣使用命令行,我會這樣做:

    [objc]?view plaincopy
  • $?cd?/Users/wangzz/Desktop/CocoaPodsTest??
  • $?touch?Podfile??
  • 首先進(jìn)入到工程的根目錄下,創(chuàng)建空白的Podfile文件,創(chuàng)建完畢的目錄結(jié)構(gòu)如下圖:

    ?



    (PS:Podfile文件也可以不放在工程的根目錄下,只是會稍微麻煩點(diǎn),在下一篇文章中會有介紹,敬請關(guān)注。)

    2、編輯Podfile

    根據(jù)需要,我們可以在Podfile文件中寫入需要用到的第三方庫,以SBJson、AFNetworking、Reachability三個(gè)庫為例,我的Podfile內(nèi)容如下:

    [objc]?view plaincopy
  • platform?:ios??
  • pod?'Reachability',??'~>?3.0.0'??
  • pod?'SBJson',?'~>?4.0.0'??
  • ??
  • platform?:ios,?'7.0'??
  • pod?'AFNetworking',?'~>?2.0'??
  • ?

    3、執(zhí)行導(dǎo)入命令

    ?

    準(zhǔn)備工作都完成后,開始導(dǎo)入第三方庫:

    [objc]?view plaincopy
  • $?cd?/Users/wangzz/Desktop/CocoaPodsTest??
  • $?pod?install??
  • 首先進(jìn)入工程根目錄,然后執(zhí)行pod install命令,CocoaPods就開始為我們做下載源碼、配置依賴關(guān)系、引入需要的framework等一些列工作,命令的執(zhí)行結(jié)果打印出來如下:

    [objc]?view plaincopy
  • Analyzing?dependencies??
  • Downloading?dependencies??
  • Installing?AFNetworking?(2.1.0)??
  • Installing?JSONKit?(1.5pre)??
  • Installing?Reachability?(3.0.0)??
  • Generating?Pods?project??
  • Integrating?client?project??
  • ??
  • [!]?From?now?on?use?`CocoaPodsTest.xcworkspace`.??
  • 這就說明pod install命令執(zhí)行成功了。再來看看工程根目錄發(fā)生的變化,如下圖:

    ?

    可以看到,工程的根目錄下多了三個(gè)東西:CocoaPodsTest.xcworkspace、Podfile.lock文件和Pods目錄。

    (PS:篇幅有限,Podfile.lock文件會放到系列文章的下一篇介紹,敬請關(guān)注。)

    ?

    再看看剛才執(zhí)行完pod install命令打印出來的內(nèi)容的最后一行:

    [objc]?view plaincopy
  • [!]?From?now?on?use?`CocoaPodsTest.xcworkspace`.??
  • 提示我們從現(xiàn)在起,我們需要使用CocoaPodsTest.xcworkspace文件來開發(fā)。

    ?

    對于工程發(fā)生的變化,有幾點(diǎn)需要說明:

    ?

    • 第三方庫會被編譯成靜態(tài)庫供我們正真的工程使用

    ?

    CocoaPods會將所有的第三方庫以target的方式組成一個(gè)名為Pods的工程,該工程就放在剛才新生成的Pods目錄下。整個(gè)第三方庫工程會生成一個(gè)名稱為libPods.a的靜態(tài)庫提供給我們自己的CocoaPodsTest工程使用。

    ?

    • 我們的工程和第三方庫所在的工程會由一個(gè)新生成的workspace管理

    ?

    為了方便我們直觀的管理工程和第三方庫,CocoaPodsTest工程和Pods工程會被以workspace的形式組織和管理,也就是我們剛才看到的CocoaPodsTest.xcworkspace文件。

    原來的工程設(shè)置已經(jīng)被更改了,這時(shí)候我們直接打開原來的工程文件去編譯就會報(bào)錯(cuò),只能使用新生成的workspace來進(jìn)行項(xiàng)目管理。

    打開CocoaPodsTest.xcworkspace,界面如下:

    工程的目錄結(jié)構(gòu)還是非常明顯的。

    在項(xiàng)目中引用剛才添加的第三方庫的頭文件,執(zhí)行編譯操作,果斷成功!

    至此,CocoaPods使用篇告一段落,接下來打算再用一個(gè)篇幅介紹CocoaPods稍微深層次的東西,敬請關(guān)注。

    ?

    四、參考資料

    1、http://code4app.com/article/cocoapods-install-usage

    2、http://cocoapods.org/

    轉(zhuǎn)載于:https://www.cnblogs.com/106dapeng/p/4831533.html

    總結(jié)

    以上是生活随笔為你收集整理的cocopods的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。