使用Cocoapods高版本(0.36.0以上) 来管理XMPPFramework

05/29/2015 09:40 上午 posted in  Cocoapods

由于XMPPFramework 在cocoapods 0.36一上会有循环引用的错误,eg:Circular dependency issuse on cocoapods version(0.36.0)

如果不愿意降低cocoapods版本,那么可以参考国外一位开发者提供的一个修改XMPPFramework的podspec文件修复该问题。

  1. 这个修改版的文件是关键,访问如下链接,并且下载该文件。
    podspec.json修改版地址

  2. 找到本机如下路径的文件。使用Finder的go to folder

~/.cocoapods/repos/master/Specs/XMPPFramework/3.6.4/XMPPFramework.podspec.json
  1. 把第一步下载的文件,覆盖到2步的路径中。

  2. 然后执行 pod install 或者 pod update

  3. 到此,循环依赖的错误不会再出现。pod 也顺利工作。但还没有结束。后面是更重要的步骤

  4. build workspace 会发现build 失败。错误是 XMPPFramework.h文件

#ifdef HAVE_XMPP_SUBSPEC_SYSTEMINPUTACTIVITYMONITOR
#import "XMPPSystemInputActivityMonitor.h"
#endif
  1. 这时需要从官方的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) 完全解决方案(非降版本)