Circular dependency issuse on cocoapods version(0.36.0) 全然解决方式(非降版本号)
此前的文章中。以前提到在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) 全然解决方式(非降版本号)的更多相关文章
- 升级cocoapods 0.36.0之后,解决更新的部分依赖库,不是最新版本号的问题
在升级到cocoapods 0.36.0之后,使用原本podfile配置,在又一次运行pod install之后,一些依赖库的版本号,低于github上的最新版本号.可依照下列配置.指定git,强制使 ...
- iOS iOS8中 问题"registerForRemoteNotificationTypes: is not supported in iOS 8.0 and later" 解决方式
问题重述: iOS 8中改变了通知注冊的方式,假设App须要同一时候支持iOS 7 和 8 的话,须要首先检查selector. 解决方式:在Xcode 6中 - (BOOL)application: ...
- 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 ...
- 解决Maven 报 Return code is: 400 , ReasonPhrase:Repository version policy: SNAPSHOT does not allow version: 2.1.0.RELEASE. 的错误
最近在搭建公司的基础框架,业务需求用到elasticsearch,所以需要整合到基础框架里,供各业务线使用同时也便于管理,但在整合的过程中,出现了莫名的问题,同时maven的提示也不够明确. 我的版本 ...
- Tomcat8.0.36安装配置
1.下载tomcat8.0.36 下载地址:http://tomcat.apache.org/download-80.cgi 2.解压 至C:\Program Files\tomcat8下 3.添加系 ...
- 升级 Cocoapods 到1.2.0指定版本,降低版本及卸载
=====================升级版本=================== CocoaPods 1.1.0+ is required to build SnapKit 3.0.0+. 在 ...
- OEL7.6安装Oracle Database 19C(VERSION 19.3.0.0)
1.eDelivery中下载Oracle Database 19C和Oel的安装介质,并安装好操作系统 2.安装Oracle环境准备工具 环境准备工具会自动完成用户和用户组的创建.系统参数配置.依赖包 ...
- 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. ...
- Newtonsoft.Json, Version=3.5.0.0, Culture=neutral, PublicKeyToken=b9a188c8922137c6
未能加载文件或程序集“Newtonsoft.Json, Version=3.5.0.0, Culture=neutral, PublicKeyToken=b9a188c8922137c6”或它的某一个 ...
随机推荐
- MSI failed, 不能卸载VMware
解决方法; http://kb.vmware.com/selfservice/microsites/search.do?language=en_US&cmd=displayKC&ext ...
- .NET:CLR via C# Compute-Bound Asynchronous Operations
线程槽 使用线程池了以后就不要使用线程槽了,当线程池执行完调度任务后,线程槽的数据还在. 测试代码 using System; using System.Collections.Generic; us ...
- selenium+python自动化82-只截某个元素的图
前言 selenium截取全图小伙伴们都知道,曾经去面试的时候,面试官问:如何截图某个元素的图?不要全部的,只要某个元素...小编一下子傻眼了, 苦心人,天不负,终于找到解决办法了. selenium ...
- Windows怎样实时同步文件夹?Java+Spring+Quartz+Tomcat集群实现
我有一台服务器上加了两块硬盘.其中有个目录下的数据非常重要.假设是D:\data目录.这个目录下有几十个G的文件. 我希望能把这个文件夹里的内容同步到另一块硬盘的目录下,假设是E:\data 我希望最 ...
- Shimmer辉光动画效果
Shimmer辉光动画效果 效果 源码 https://github.com/facebook/Shimmer https://github.com/YouXianMing/Animations // ...
- sscanf,sprintf用法
#include<string.h> #include<stdio.h> int main() { ],sztime1[],sztime2[]; sscanf("12 ...
- 解析KML文件并提取coordinates中的经纬度坐标信息
从googleEarh导出的kml文件 <?xml version="1.0" encoding="UTF-8"?><kml xmlns=&q ...
- permission 文档 翻译 运行时权限
文档位置:API24/guide/topics/security/permissions.html System Permissions 系统权限 Android is a privilege-se ...
- 你应该抓紧学习Python,它是开发Web应用最强大的语言
Python和少数几种编程语言,如MySQL.Perl.PHP和与LAMP打包的网络结构一起的Apache,已经成为Linux的一个基本组件.即 使从它诞生开始,Python就与其他动态编程语言如Ru ...
- 转】未指定 INSTANCESHAREDWOWDIR 命令行值。如果指定INSTANCESHAREDDIR 值,则必须指定该值 .
插入光盘后不要用autorun的安装,使用命令行安装!cd进安装光盘的根目录,输入命令:setup.exe /INSTALLSHAREDDIR="D://Program Files//Mic ...