pod install error , 项目包含框架冲突

简介: 背景导入三方资源的时候发现一个报错, 修改完 podfile 之后终端执行 $ pod install. 提示错误The 'Pods-ProjectName' target has frameworks with conflicting names: nimsdk.framework 虽然看提示很清楚知道是项目中已包含了 nimsdk, 但是一下子并没有想到到底是因为那里出了问题导致.原因一般是由于 podfile 新导入的库与原有项目中的 framework 有包含或者依赖关系导致。

背景

导入三方资源的时候发现一个报错, 修改完 podfile 之后终端执行 $ pod install. 提示错误
The 'Pods-ProjectName' target has frameworks with conflicting names: nimsdk.framework 虽然看提示很清楚知道是项目中已包含了 nimsdk, 但是一下子并没有想到到底是因为那里出了问题导致.

原因

  1. 一般是由于 podfile 新导入的库与原有项目中的 framework 有包含或者依赖关系导致。
  2. 之前使用手动导入库的方式, 后面修改成 cocoaPod 进行管理, 但是 Project 内残留 Pod 导入库的相关类等等. 导致冲突。

解决

  • 针对第一种:

项目版本管理的强大之处就这个时候就很好的提现出来了. 比较喜欢用 git。
一般这种情况, 在执行 podfile 之前, 项目正常编译通过的情况下, 我们直接通过 git 或者 svn checkout 回到上一个版本, 或者如果这次修改内容过多, 可以执行针对 podfile 进行 checkout 即可.
$ git checkout Podfile
然后在重新 pod install 回到正常版本.

即可知道是具体由于那一个 framework 与原有项目中存在冲突, 在进一步针对具体情况进行解决即可。

  • 针对第二种:

    需要检查 Project 里面是否包含导入三方库的相关类等等, 如果存在的话删除或者注释掉, 然后重新
    $ pod install 即可

注意看注释

有些三方资源是相互依赖或者包含的关系, 可能由时候我们之前使用的是同一个组织, 或者开发者的三方库等等. 这时候就经常出现这种问题, 在遇到报错的时候, 可以去仔细看一下项目的 使用注释, 一般都会有相关介绍和提示。 然后直接删掉有包含关系的那个即可!

比如之前在使用 云信通讯框架的时候, 首先引入的是 NIMSDK, 后面发现 NIMKit, 然后没有注意看文档介绍, 直接在 podfile 新增了 pod 'NIMKit', 就会出现上面的错误。

到官方查看文档才 发现 NIMKit 这个 framework 已经包含了 NIMSDK, 所以直接将 NIMSDK 删除掉, 直接使用 NIMKit 就可以了.

参考

iOS-[!] The 'Pods-你的项目名' target has frameworks with conflicting names: UMMobClick.

最后

希望此篇文章对您有所帮助,如有不对的地方,希望大家能留言指出纠正。
谢谢!!!!!
学习的路上,与君共勉!!!

本文原创作者:Jersey. 欢迎转载,请注明出处和本文链接

目录
相关文章
|
6月前
|
移动开发 监控 安全
mPaaS常见问题之pod install 报错如何解决
mPaaS(移动平台即服务,Mobile Platform as a Service)是阿里巴巴集团提供的一套移动开发解决方案,它包含了一系列移动开发、测试、监控和运营的工具和服务。以下是mPaaS常见问题的汇总,旨在帮助开发者和企业用户解决在使用mPaaS产品过程中遇到的各种挑战
|
6月前
|
Go
这个报错是因为在构建chaosblade时,找不到crypto/ecdh模块
【1月更文挑战第22天】【1月更文挑战第110篇】这个报错是因为在构建chaosblade时,找不到crypto/ecdh模块
213 6
执行 composer update 命令会直接更新依赖包,可能会导致某些依赖包之间的兼容性问题,如何解决这个问题?底层原理是什么?
执行 composer update 命令会直接更新依赖包,可能会导致某些依赖包之间的兼容性问题,如何解决这个问题?底层原理是什么?
884 0
|
29天前
jetson错误(三):E: 有未能满足的依赖关系。请尝试不指明软件包的名字来运行“apt --fix-broken install”(也可以指定一个解决办法
在NVIDIA Jetson平台上遇到“未能满足的依赖关系”错误时,可以通过运行“sudo apt-get -f install”或“sudo apt-get --fix-broken install”命令来解决。
158 1
|
6月前
|
PHP 开发者
【专栏】介绍PHP的命名空间,它是一个用于封装代码、避免名称冲突的机制
【4月更文挑战第27天】本文介绍了PHP的命名空间,它是一个用于封装代码、避免名称冲突的机制。命名空间的作用包括:防止大型项目中的命名冲突,提升代码可读性和可维护性,以及方便代码重用。文章详细阐述了如何定义、导入命名空间,使用完全限定名称以及设置命名空间别名。通过实例展示了命名空间在项目模块划分和第三方库如Laravel中的应用,强调了命名空间在组织和管理PHP代码中的关键作用。
61 4
|
3月前
|
缓存 Go
Go引用包版本更新但是被引用的包的子包并没有出现在vendor中的问题和解决方案
文章讨论了在Go模块项目中升级依赖包版本时遇到的子包未出现在vendor目录的问题,并提供了直接删除旧版本引用并重新执行`go mod vendor`的解决方案。
36 0
|
6月前
|
Ruby Perl
工程支持xcframework,检查pod版本及更新pod
工程支持xcframework,检查pod版本及更新pod
64 0
|
6月前
|
应用服务中间件 网络安全 nginx
nginx(1.13.7)首次安装出现:【make: *** 没有规则可以创建“default”需要的目标“build” 问题】解决措施
nginx(1.13.7)首次安装出现:【make: *** 没有规则可以创建“default”需要的目标“build” 问题】解决措施
526 0
|
6月前
|
JSON 前端开发 JavaScript
如何检查前端项目中未使用的依赖包?
如何检查前端项目中未使用的依赖包?
245 0
|
jenkins 应用服务中间件 持续交付
Jenkins+Gitlab+Nginx实现自动发布与回退基于tag版本的静态项目(解决重复构建问题)
Jenkins+Gitlab+Nginx实现自动发布与回退基于tag版本的静态项目(解决重复构建问题)
224 0
下一篇
无影云桌面