此前的文章中。以前提到在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. 点赞和吐糟Adblock Plus~进阶教程

    前言:Adblock Plus后文都简称ABP,这是一篇ABP进阶教程!用ABP实现flashBlock和NoScript.推荐有相当基础的阅读.刚開始学习的人先看懂这里:http://adblock ...

  2. [Apache] Apache 從 2.2 換至 2.4 httpd.conf 的調整筆記 (windows 環境)

    原文地址: http://www.dotblogs.com.tw/maplenote/archive/2012/07/20/apache24_httpd_conf.aspx 整理一下 Windows ...

  3. Java String和Date的转换 Date类型操作

    String—>Date String dateString = "2012-12-06 "; try { SimpleDateFormat sdf = new Simple ...

  4. 算法:哈希表格(Hash Table)

    背景 Java 和 .Net 平台都有一个所有引用类型都会间接或直接继承的类型:Object,这个类型提供最基本的相等性比较算法和哈希算法,很多书上都给出了在重写这两个算法的时候的主意事项,其中大多数 ...

  5. SQL_DDL_建库建表

    --IF DB_ID('testdb') IS NULL --CREATE DATABASE testdb USE master GO IF EXISTS ( SELECT * FROM sys.da ...

  6. easyui-datetimebox设置默认时分秒00:00:00

    datetimebox默认打开面板显示的是当前的时间,有个需求就是当打开面板时显示固定的”00:00:00”时间, 它本身有个方法spinner方法可以获得时间微调器对象,它所依赖的组件combo有个 ...

  7. memcpy实现

    typedef unsigned int size_t; void * my_memcpy ( void *dest, const void *src, size_t num ) { void* re ...

  8. 高效的数据压缩编码方式 Protobuf

    一. protocol buffers 是什么? Protocol buffers 是一种语言中立,平台无关,可扩展的序列化数据的格式,可用于通信协议,数据存储等. Protocol buffers ...

  9. Word 页眉插入自动标题(页眉显示章节标题)

    做word文档时有时候需要将章节标题加到页眉中,这里实现自动获取和自动更新页眉里面的标题 1.双击页眉,输入固定文字作为页眉左边的显示,然后敲2下table键,为接下来插入自动标题做好准备,如下图: ...

  10. 垃圾收集(GC)中如何确定哪些内存是"垃圾

    垃圾收集(Garbage Collection,GC),要设计一个GC,需要考虑解决下面三件事情:(1)哪些内存需要回收?(2)什么时候回收?(3)如何回收? 哪些内存需要回收?根据<Java内 ...