1. 程式人生 > >Circular dependency issuse on cocoapods version(0.36.0) 全然解決方式(非降版本號)

Circular dependency issuse on cocoapods version(0.36.0) 全然解決方式(非降版本號)

保持 升級 循環 sub spec art podspec tac str

此前的文章中。以前提到在cocoapods依賴管理版本號假設超過0.34.4。比方0.35, 0.36.0等版本號中。

運行"pod install" 或者 "pod update" , xmppframework 會出現循環依賴問題。

There is a circular dependency between XMPPFramework/Core and XMPPFramework/Authentication

解決這個問題的暫時方案,是降版本號 cocoapods 到 0.34.4.

可是。隨著cocoapods版本號持續升級。這個問題始終沒有得到根本解決。在這裏分享該解決方式例如以下

請依照下面步驟進行

1. 升級cocoapods版本號到最新版本號。本文撰寫時,最新版本號為0.36.0

命令行: sudo gem install cocoapods


2. podfile保持不變。


pod ‘XMPPFramework‘


3. 運行命令行。更新本機 ~/.cocoapods 文件夾下的全部庫

pod setup


4. 國外的朋友提供了一個改動過的XMPPFramework的podspec文件。這個文件在xmppframework官方的github裏,是不一樣的。

眼下xmppframewokr 3.6.4的最新版本號。

這個改動版的文件是關鍵,訪問例如以下鏈接,而且下載該文件。

https://github.com/ChatSecure/XMPPFramework/blob/f1364d1dd9bc8d0843b79ee8abe261154473d8a0/XMPPFramework.podspec.json


5. 找到本機例如以下路徑的文件。

使用Finder的go to folder

~/.cocoapods/repos/master/Specs/XMPPFramework/3.6.4/XMPPFramework.podspec.json


6. 把第4步下載的文件,覆蓋到5步的路徑中。


7. 然後運行 pod install 或者 pod update


8. 到此,循環依賴的錯誤不會再出現。

pod 也順利工作。但還沒有結束。後面是更重要的步驟


9. build workspace 會發現build 失敗。錯誤是 XMPPFramework.h文件

#ifdef HAVE_XMPP_SUBSPEC_SYSTEMINPUTACTIVITYMONITOR
#import "XMPPSystemInputActivityMonitor.h"
#endif

10. 這時須要從官方的github上,

https://github.com/robbiehanson/XMPPFramework/tree/master/Extensions/SystemInputActivityMonitor

找到例如以下兩個文件

XMPPSystemInputActivityMonitor.h

XMPPSystemInputActivityMonitor.m

並復制到project目錄中的例如以下路徑其中,假設沒有目錄SystemInputActivityMonitor,須要手動創建SystemInputActivityMonitor

/Pods/XMPPFramework/Extensions/SystemInputActivityMonitor/XMPPSystemInputActivityMonitor.h

11. 完畢上述工作之後。又一次build workspace。會發現。一切正常


以上方案盡管不算完美。但也算是兼顧了cocoapods的最新版本號。至於第9步和第10步。也能夠不做。僅僅是這種話,須要凝視xmppframework.h文件裏相應的import。孰輕孰重,僅僅能自己衡量了。


Circular dependency issuse on cocoapods version(0.36.0) 全然解決方式(非降版本號)