此前的文章中。以前提到在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) 全然解决方式(非降版本号)的更多相关文章

  1. 升级cocoapods 0.36.0之后,解决更新的部分依赖库,不是最新版本号的问题

    在升级到cocoapods 0.36.0之后,使用原本podfile配置,在又一次运行pod install之后,一些依赖库的版本号,低于github上的最新版本号.可依照下列配置.指定git,强制使 ...

  2. iOS iOS8中 问题"registerForRemoteNotificationTypes: is not supported in iOS 8.0 and later" 解决方式

    问题重述: iOS 8中改变了通知注冊的方式,假设App须要同一时候支持iOS 7 和 8 的话,须要首先检查selector. 解决方式:在Xcode 6中 - (BOOL)application: ...

  3. Scala Error: error while loading Suite, Scala signature Suite has wrong version expected: 5.0 found: 4.1 in Suite.class

    准备给scala项目引入单元测试 <dependency> <groupId>org.scalatest</groupId> <artifactId>s ...

  4. 解决Maven 报 Return code is: 400 , ReasonPhrase:Repository version policy: SNAPSHOT does not allow version: 2.1.0.RELEASE. 的错误

    最近在搭建公司的基础框架,业务需求用到elasticsearch,所以需要整合到基础框架里,供各业务线使用同时也便于管理,但在整合的过程中,出现了莫名的问题,同时maven的提示也不够明确. 我的版本 ...

  5. Tomcat8.0.36安装配置

    1.下载tomcat8.0.36 下载地址:http://tomcat.apache.org/download-80.cgi 2.解压 至C:\Program Files\tomcat8下 3.添加系 ...

  6. 升级 Cocoapods 到1.2.0指定版本,降低版本及卸载

    =====================升级版本=================== CocoaPods 1.1.0+ is required to build SnapKit 3.0.0+. 在 ...

  7. OEL7.6安装Oracle Database 19C(VERSION 19.3.0.0)

    1.eDelivery中下载Oracle Database 19C和Oel的安装介质,并安装好操作系统 2.安装Oracle环境准备工具 环境准备工具会自动完成用户和用户组的创建.系统参数配置.依赖包 ...

  8. ojdbc15-10.2.0.4.0.jar maven 引用报错 Dependency 'com.oracle:ojdbc15:10.2.0.4.0' not found

    ojdbc15-10.2.0.4.0.jar maven 引用报错 问题现象 在 Maven 工程中引用 ojdbc15-10.2.0.4.0.jar 报错,报错信息:Dependency 'com. ...

  9. Newtonsoft.Json, Version=3.5.0.0, Culture=neutral, PublicKeyToken=b9a188c8922137c6

    未能加载文件或程序集“Newtonsoft.Json, Version=3.5.0.0, Culture=neutral, PublicKeyToken=b9a188c8922137c6”或它的某一个 ...

随机推荐

  1. 改变 Windows 用户文件夹默认位置

    https://social.microsoft.com/Forums/zh-CN/b6602d50-1a75-42d2-90bd-3dc6c2c82147/programdata?forum=win ...

  2. hdu 1847 博弈基础题 SG函数 或者规律2种方法

    Good Luck in CET-4 Everybody! Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K ...

  3. CHANGE USER WHEN I CONNECT TO TEAM FOUNDATION SERVER

    Question: I USE TEAM EXPLORER TO CONECT TO TEAM FOUNDATION SERVER 2010, BUT I DO NOT LOGIN OUT, AND ...

  4. 算法:优先级队列(PriorityQueue)

    背景 此文给出基于已排序数组的实现,多数情况应该基于 Heap 进行实现,因为数组的插入效率为O(n),而 Heap 的插入效率为 Log(n). PriorityQueue 代码 using Sys ...

  5. Unity中关于Device Filter的选择问题

    引言 目前工作的Unity版本是5.4.1f,发布Android版本.apk的时候,对包体的大小有些疑问,就上网查了下资料,发现Build Settings——Player Settings——Oth ...

  6. 3D屏保: 彩色盘子

    一个彩色盘子的屏保 记得小时候在电视上看过一个科普节目,由多个颜色组成的盘子,如果快速旋转起来,会看上去是白色的.于是我就写了这个屏保程序,但发现在计算机上模拟并不是这样的. "RollPl ...

  7. 我所遭遇过的游戏中间件--PhysX

    我所遭遇过的游戏中间件--PhysX PhysX现在是Nvidia的物理中间件.其特点是简练且功能强大.当我最初拿到PHYSX的SDK时,就发现这个物理中间件比Havok要小很多,但该有的功能都有,甚 ...

  8. 原创BULLET物理的DEMO

    原创BULLET物理的DEMO 按空格和0,1,2,3,4,5,6会发射不同的刚体. 具体的使用说明: 鼠标右键按下并拖动         旋转视角WSAD                       ...

  9. socket函数send和recv函数

    转自:http://www.cppblog.com/aaxron/archive/2012/04/27/172891.html 在发送端,一次发送4092个字节,在接收端,一次接收4092个字节,但是 ...

  10. Divide Two Integers leetcode java

    题目: Divide two integers without using multiplication, division and mod operator. 题解: 这道题我自己没想出来...乘除 ...