由于XMPPFramework 在cocoapods 0.36一上会有循环引用的错误,eg:Circular dependency issuse on cocoapods version(0.36.0)
如果不愿意降低cocoapods版本,那么可以参考国外一位开发者提供的一个修改XMPPFramework的podspec文件修复该问题。
-
这个修改版的文件是关键,访问如下链接,并且下载该文件。
podspec.json修改版地址 -
找到本机如下路径的文件。使用Finder的go to folder
~/.cocoapods/repos/master/Specs/XMPPFramework/3.6.4/XMPPFramework.podspec.json
-
把第一步下载的文件,覆盖到2步的路径中。
-
然后执行 pod install 或者 pod update
-
到此,循环依赖的错误不会再出现。pod 也顺利工作。但还没有结束。后面是更重要的步骤
-
build workspace 会发现build 失败。错误是 XMPPFramework.h文件
#ifdef HAVE_XMPP_SUBSPEC_SYSTEMINPUTACTIVITYMONITOR
#import "XMPPSystemInputActivityMonitor.h"
#endif
- 这时需要从官方的github上,
XMPPFramework官网地址
找到如下两个文件
XMPPSystemInputActivityMonitor.h
XMPPSystemInputActivityMonitor.m
并拷贝到工程文件夹中的如下路径当中,如果没有文件夹SystemInputActivityMonitor,需要手动创建SystemInputActivityMonitor
/Pods/XMPPFramework/Extensions/SystemInputActivityMonitor/XMPPSystemInputActivityMonitor.h
完成上述工作之后,重新build workspace,会发现,一切正常.
以上方案虽然不算完美,但也算是兼顾了cocoapods的最新版本。至于第9步和第10步。也可以不做,只是这样的话,需要注释xmppframework.h文件中对应的import。孰轻孰重,只能自己衡量了。
Circular dependency issuse on cocoapods version(0.36.0) 完全解决方案(非降版本)