<不要重復(fù)造輪子 第一篇>搞定CocoaPods


現(xiàn)在,快速開發(fā)APP已經(jīng)成為所有公司的需求,公司會(huì)在業(yè)務(wù)方法投入更多的時(shí)間來豐富APP的內(nèi)容,而功能實(shí)現(xiàn)這個(gè)重?fù)?dān)就壓到了開發(fā)者的肩上。這時(shí)如果我們?nèi)绻總€(gè)細(xì)節(jié)都自己傻楞的實(shí)現(xiàn)那結(jié)果可能只有兩個(gè):加班或者加班也做不完,然后被批。

大家一定聽說過“不要重復(fù)造輪子”這句話,我們可以在程序適當(dāng)?shù)牡胤揭胍恍┬阅軆?yōu)良的第三方庫(輪子)來幫我實(shí)現(xiàn)某些復(fù)雜或者繁瑣的過程。這樣我們就可以專心的“造車”了。


CocoaPods 簡(jiǎn)介

CocoaPods 是一個(gè)為Swift何Objective-C提供依賴項(xiàng)管理的工具,它擁有近2.6萬個(gè)輪子可以為你的程序提供方便,有超過150萬個(gè)程序通過它來管理依賴項(xiàng)。利用CocoaPods可以優(yōu)雅的幫助你擴(kuò)展你的項(xiàng)目。CocoaPods主頁

安裝CocoaPods

  1. 首先確保本機(jī)的 gem 工具可以使用,檢測(cè)方法:打開終端輸入

    gem -v

    如果報(bào)錯(cuò):-bash: gem: command not found 這種的,說明ruby的環(huán)境出現(xiàn)問題,給大家推薦一篇文章安裝ruby運(yùn)行環(huán)境

  2. 更換ruby的軟件源(國內(nèi)網(wǎng)絡(luò)問題導(dǎo)致)。方法:在終端輸入:

    gem sources -l 查看當(dāng)前ruby的源
    gem sources --remove https://rubygems.org/ 移除當(dāng)前ruby的源
    gem sources -a https://ruby.taobao.org/ 設(shè)置ruby的新源
    gem sources -l 再次查看當(dāng)前ruby的源

    下面結(jié)果就證明ruby的軟件源已經(jīng)設(shè)置OK了。

      *** CURRENT SOURCES ***
      https://ruby.taobao.org/
    
  3. 更新gem 方法:在終端輸入:

    sudo gem update --system

    需要升級(jí)時(shí)在升級(jí)成功后會(huì)提示: Latest version currently installed. Aborting.

  4. 以上過程成功后,就可以開始安裝CocoaPods了,方法:在終端輸入:

    sudo gem install cocoapods

    這個(gè)過程有時(shí)會(huì)比較慢,需要等待。
    如果出現(xiàn)了錯(cuò)誤(在系統(tǒng)版本大于10.11時(shí)會(huì)出現(xiàn)) [zsh: command not found: pod] ,這時(shí)候我們繼續(xù)執(zhí)行:

    sudo gem install -n /usr/local/bin cocoapods

  5. 初始化CocoaPods

    pod setup

101.png

當(dāng)出現(xiàn)如上錯(cuò)誤時(shí),執(zhí)行:

pod repo update --verbose

以上的過程成功之后,安裝就結(jié)束了。

使用CocoaPods

  1. Podfile 的編寫。使用CocoaPods的第一步,就是為你的程序定制一份量身的腳本,CocoaPods會(huì)根據(jù)你寫的腳本來生成對(duì)應(yīng)的依賴。
    下面是個(gè)簡(jiǎn)單的例子:

    102.png

    第一個(gè)紅框:platform :ios 和第二個(gè)紅框 '6.0' 這行腳本的意思是指定依賴項(xiàng)的平臺(tái)是iOS平臺(tái),最低支持的版本是 iOS 6.0. 當(dāng)然這里可以根據(jù)不同的平臺(tái)和最低支持的版本不同而修改,比如我的程序是 為watchOS 2.0寫的, platform :watchos, '2.0'
    第三個(gè)紅框 target 'DoIt' do 這行腳本的意思是:為程序中的 DoIt 這個(gè)target添加依賴項(xiàng),以end結(jié)尾
    第四個(gè)紅框 pod 'CocoaLumberjack', '~> 2.4.0' 就是真正的依賴項(xiàng)了, 它寫到這里意思是: 為 'DoIt' 添加 CocoaLumberjack這個(gè)第三方庫,而且版本 在 2.4.0 - 2.5.0之間,且不包含2.5.0
    ‘~>’這個(gè)符號(hào)的意思就是不大于這個(gè)小版本的意思。同樣,還有 = , > , >= , < , <= 這5種符合,意思同符號(hào)。
    如果想查找一些依賴項(xiàng),并查看它有什么可用版本的時(shí)候,可以利用pod提供的檢索功能:
    pod search CocoaLumberjack
    103.png

    如果為不同的target寫不同的依賴項(xiàng),就要按圖中的方式分開寫。

    其他更多的Podfile腳本寫法見官方的文檔 Podfile Syntax Reference

  2. 為你的程序添加依賴。進(jìn)行如下操作。將第一步生成的Podfile文件放到你的程序目錄下,于 xxxx.xcodeproj 同級(jí),打開控制臺(tái),cd 到 Podfile文件路徑下,然后執(zhí)行

    pod install

    如果你寫的Podfile腳本文件沒問題的話,這步執(zhí)行成功后會(huì)生成一個(gè) xxxx.xcworkspace 文件,那么恭喜你依賴項(xiàng)已經(jīng)添加成功了。如果未成功的話,腳本中有問題的地方會(huì)在控制臺(tái)打印出來,修改之后,重復(fù)此步驟直到顯示成功為止。

  3. 更新依賴項(xiàng)。一旦install執(zhí)行成功后,之后對(duì)Podfile文件修改后,直接執(zhí)行:
    pod update就行了。

  4. 打開xxxx.xcworkspace 文件,這里以后就是你開發(fā)的地方了。

CocoaPods需要被某個(gè)Target下的子工程依賴時(shí)

這種情況一般多在Frameworks或者靜態(tài)庫開發(fā)時(shí)。子工程并沒有被添加到依賴。這時(shí)候我們需要做幾個(gè)簡(jiǎn)單的操作。

  1. 找到主工程(Podfile添加依賴的Target)下的 Pods 目錄,復(fù)制一份你需要Target的 Pods-APP.debug.xcconfig 文件。

104.png
2. 將該文件放到子工程的目錄下,可以換個(gè)名字,并將該文件添加到Target中。點(diǎn)擊該文件,修改圖中紅框的 PODS_ROOT 值,該值為當(dāng)前子項(xiàng)目到主項(xiàng)目的 Pods文件夾 的相對(duì)路徑。

105.png
3. 在Xcode中點(diǎn)擊子項(xiàng)目->點(diǎn)擊 PROJECT 下的工程 -> 點(diǎn)擊ConfigurationsDebugRelease 的下拉框,之后的配置里選擇該 pods.xcconfig文件。

106.png

這時(shí),你會(huì)發(fā)現(xiàn),引用不到的依賴項(xiàng)已經(jīng)可以使用了。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 項(xiàng)目組件化、平臺(tái)化是技術(shù)公司的共同目標(biāo),越來越多的技術(shù)公司推崇使用pod管理第三方庫以及私有組件,一方面使項(xiàng)目架構(gòu)...
    swu_luo閱讀 22,847評(píng)論 0 39
  • CocoaPods 是什么? CocoaPods 是一個(gè)負(fù)責(zé)管理 iOS 項(xiàng)目中第三方開源庫的工具。CocoaPo...
    朝洋閱讀 25,990評(píng)論 3 50
  • 一. CocoaPods的介紹 什么是CocoaPods?CocoaPods是一個(gè)負(fù)責(zé)管理iOS項(xiàng)目中第三方開源庫...
    輝712閱讀 4,109評(píng)論 0 7
  • 前章 酆都城閻羅殿里,十位閻羅王破天荒的全部聚齊。臉色陰沉的怒視著大殿當(dāng)中下跪的一青一紅兩個(gè)瑟瑟發(fā)抖的鬼將。 大殿...
    喵叔不吃魚閱讀 236評(píng)論 0 0
  • 隨著各類娛樂社交軟件的興起,傳統(tǒng)電商在淘寶天貓賣家市場(chǎng)逐漸飽和的情況下,不得不另謀出路。 而微信很適時(shí)的推出了小程...
    心和合閱讀 755評(píng)論 0 0

友情鏈接更多精彩內(nèi)容