CocoaPods使用注意事項

CocoaPods使用注意事項

網(wǎng)上關(guān)于如何使用CocoaPods的文章太多了,我想我就不在重復(fù)敘述了。這里我想把我使用過程中遇到的問題或者心得給大家分享下。

<br />

1、Podfile.lock

通過pod install安裝第三方庫完畢后,CocoaPods會把庫放在了Podfile.lock里面,這個文件很重要。它鎖定了庫的版本,最直接的保護(hù)作用就是防止多人共同協(xié)作開發(fā)的時候,你的版本是1.0,而我的是2.0,產(chǎn)生的混亂問題。

截取一段我的Podfile.lock中的內(nèi)容,可以看到我的AFNetworking是被鎖定在2.6.3版本的。

PODS:
  - AFNetworking (2.6.3):
    - AFNetworking/NSURLConnection (= 2.6.3)
    - AFNetworking/NSURLSession (= 2.6.3)
    - AFNetworking/Reachability (= 2.6.3)
    - AFNetworking/Security (= 2.6.3)
    - AFNetworking/Serialization (= 2.6.3)
    - AFNetworking/UIKit (= 2.6.3)
  - AFNetworking/NSURLConnection (2.6.3):
    - AFNetworking/Reachability
    - AFNetworking/Security
    - AFNetworking/Serialization
  - AFNetworking/NSURLSession (2.6.3):
    - AFNetworking/Reachability
    - AFNetworking/Security
    - AFNetworking/Serialization
  - AFNetworking/Reachability (2.6.3)
  - AFNetworking/Security (2.6.3)
  - AFNetworking/Serialization (2.6.3)
  - AFNetworking/UIKit (2.6.3):
    - AFNetworking/NSURLConnection
    - AFNetworking/NSURLSession

2、install和update的區(qū)別

我建議按照以下方式進(jìn)行,在 Podfile 中添加了新的庫,應(yīng)該使用pod install,而不是pod update。這樣可以只安裝新的庫 ,不會同時把已經(jīng)存在的庫也更新掉。
只有想更新某個或者全部 pod 時,你才應(yīng)該使用pod update。

3、安裝庫后的鏈接錯誤

由于我們的項目是中途加入了CocoaPods,項目工程以前就一直在用AFNetworking等知名第三方庫。通過CocoaPods引入后,編譯工程,發(fā)現(xiàn)報了AFNetworking相關(guān)的鏈接錯誤。</br>
具體錯誤內(nèi)容為

Undefined symbols for architecture arm64

開始懷疑是不是引用庫的方式問題,后來發(fā)現(xiàn)不是。真實原因在于other link flags缺少-l"AFNetworking"。</br>
更新:引用的庫多了,不能每次安裝完都要手動在other link flags里添加吧。通過搜索,我發(fā)現(xiàn)在other link flags選項添加$(inherited)就可以了。這樣每次運(yùn)行cocoapods安裝庫,就可以自動完成引用的工作。

4、某個庫引起的糟糕錯誤

這個描述是不是很籠統(tǒng)。但是過程卻是真實發(fā)生的,而且讓我費(fèi)了周折。我們的推送服務(wù)用了某光,用的一直很穩(wěn)定,但是以前是直接引入代碼的方式。改為pod加載后,在配合svn的使用,居然其他同事在執(zhí)行pod install出現(xiàn)了許多意想不到的錯誤,而且pod工程目錄許多文件夾都因為錯誤沒有創(chuàng)建成功。podfile刪除后,重新執(zhí)行pod install也不好使了。。。很無語。我手動進(jìn)入Targets Support Files目錄下,找到與這個庫相關(guān)的配置代碼(Pods.release.xcconfig和Pods.debug.xcconfig),手動刪除??偹闶呛昧?。

5、多個targets的podfile寫法

給每一個target添加相同的pod寫法不太優(yōu)雅,看了一個stackflow的帖子,推薦以下的寫法。

platform :ios, '7.0'

def shared_pods
    pod 'SDWebImage', '~>3.7'
    pod 'TTTAttributedLabel'
end

target  'YourTarget1' do
    shared_pods
end

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

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

  • 項目組件化、平臺化是技術(shù)公司的共同目標(biāo),越來越多的技術(shù)公司推崇使用pod管理第三方庫以及私有組件,一方面使項目架構(gòu)...
    swu_luo閱讀 22,848評論 0 39
  • Ruby 安裝 要安裝cocospods 首先需要安裝ruby,可以先安裝xcode,再安裝macport ,最后...
    山天大畜閱讀 2,121評論 0 1
  • 如題,我換了一只手機(jī)。 到目前為止的此生,加上我才換的這只手機(jī),我一共用了4只手機(jī)。作為一個念舊也喜新的人,我并不...
    二菟閱讀 502評論 0 1
  • 今天早上空氣不錯,臨時決定出去晨練。運(yùn)動場上一片金黃色灑在嶄綠的草坪上,陽光下的小草泛著滋滋的油光,像是用這種方式...
    曹小暖閱讀 489評論 2 6
  • 為了活動一下脖子,就做成這個樣子的圖片了:)。 阿姆達(dá)爾定律顯示,增加CPU處理器的數(shù)量并不一定能起到有效的作用 ...
    G先生_海林閱讀 259評論 0 0

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