背景
導入三方資源的時候發現一個報錯, 修改完 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 就可以了.
參考
iOS-[!] The 'Pods-你的項目名' target has frameworks with conflicting names: UMMobClick.最後
希望此篇文章對您有所幫助,如有不對的地方,希望大家能留言指出糾正。
謝謝!!!!!
學習的路上,與君共勉!!!
本文原創作者: Jersey . 歡迎轉載,請注明出處和 本文連結