pod install error , 專案包含框架衝突
背景
匯入三方資源的時候發現一個報錯, 修改完 podfile 之後終端執行 $ pod install. 提示錯誤
The 'Pods-ProjectName' target has frameworks with conflicting names: nimsdk.framework雖然看提示很清楚知道是專案中已包含了 nimsdk, 但是一下子並沒有想到到底是因為那裡出了問題導致.
原因
- 一般是由於 podfile 新匯入的庫與原有專案中的 framework 有包含或者依賴關係導致。
- 之前使用手動匯入庫的方式, 後面修改成 cocoaPod 進行管理, 但是 Project 內殘留 Pod 匯入庫的相關類等等. 導致衝突。
解決
- 針對第一種:
專案版本管理的強大之處就這個時候就很好的提現出來了. 比較喜歡用 git。
一般這種情況, 在執行 podfile 之前, 專案正常編譯通過的情況下, 我們直接通過git 或者svn checkout 回到上一個版本, 或者如果這次修改內容過多, 可以執行鍼對 podfile 進行 checkout 即可.
$ git checkout Podfile
然後在重新 pod install 回到正常版本.
即可知道是具體由於那一個 framework 與原有專案中存在衝突, 在進一步針對具體情況進行解決即可。
-
針對第二種:
需要檢查 Project 裡面是否包含匯入三方庫的相關類等等, 如果存在的話刪除或者註釋掉, 然後重新
$ pod install 即可
注意看註釋
有些三方資源是相互依賴或者包含的關係, 可能由時候我們之前使用的是同一個組織, 或者開發者的三方庫等等. 這時候就經常出現這種問題, 在遇到報錯的時候, 可以去仔細看一下專案的 使用註釋, 一般都會有相關介紹和提示。 然後直接刪掉有包含關係的那個即可!
比如之前在使用 雲信通訊框架的時候, 首先引入的是NIMSDK , 後面發現NIMKit , 然後沒有注意看文件介紹, 直接在 podfile 新增了 pod 'NIMKit', 就會出現上面的錯誤。
到官方檢視文件才 發現 NIMKit 這個 framework 已經包含了 NIMSDK, 所以直接將 NIMSDK 刪除掉, 直接使用NIMKit 就可以了.
參考
ofollow,noindex">iOS-[!] The 'Pods-你的專案名' target has frameworks with conflicting names: UMMobClick.