iOS 如何在一个已经存在多个project的workspace中引入cocoapods管理第三方类库

摘要:
1) 具体方法是如何在具有多个项目的工作区中引入cocapods来管理第三方类库。`Ecosphere[Debug]`targetoverride`OTHER_LDFLAGS`buildsettingsdefinedin`../Pods/TargetSupportFiles/Pods-Ecosphere/Pods-Ecosphere.Debug.xcconfig'。当CocoaPods安装U设置“$”标志或从目标中删除构建设置时,不能忽略此警告……此警告的直接后果是无法编译。出现此警告的原因是项目Target中有一些设置,CocoaPods也进行了默认设置。如果两个设置不一致,将导致问题。另一种简单粗暴的方法也在互联网上流行。单击项目文件项目。xcodeproj,右键单击“显示包内容”,打开“项目”。pbxproj”,然后删除“OTHER”_ LDFLAGS”,保存,返回Xcode并编译。

一)

具体方法在

iOS 如何在一个存在多个project的workspace中引入cocoapods管理第三方类库

二)Question && Solution

Cocoapods 版本1.0.1

我在按上述链接转换的时候,遇到的问题:

1,

[!] `xcodeproj` was renamed to `project`. Please update your Podfile accordingly.

 

Solution:

 

xcodeproj 'MyProj/MyProj.xcodeproj'

 

just replace xcodeproj to project

 

project 'MyProj/MyProj.xcodeproj'

2,eg:

[!] The `Ecosphere [Debug]` target overrides the `HEADER_SEARCH_PATHS` build setting defined in `../Pods/Target Support Files/Pods-Ecosphere/Pods-Ecosphere.debug.xcconfig'. This can lead to problems with the CocoaPods installation

    - Use the `$(inherited)` flag, or

    - Remove the build settings from the target.

 

[!] The `Ecosphere [Debug]` target overrides the `OTHER_LDFLAGS` build setting defined in `../Pods/Target Support Files/Pods-Ecosphere/Pods-Ecosphere.debug.xcconfig'. This can lead to problems with the CocoaPods installation

    - Use the `$(inherited)` flag, or

    - Remove the build settings from the target.

 ......

 

 这种警告是不能忽视的,它带来的直接后果就是无法通过编译。

而产生此警告的原因是项目 Target 中的一些设置,CocoaPods 也做了默认的设置,如果两个设置结果不一致,就会造成问题。

我想要使用 CocoaPods 中的设置,分别在我的项目中定义`PODS_ROOT` 和 `Other Linker Flags`的地方,把他们的值用`$(inherited)`替换掉,

进入终端,执行 pod update 

警告没了,回到 Xcode,build通过。

网上还流行另外一种简单粗暴的方法

点击项目文件 project.xcodeproj,右键`显示包内容`,用文本编辑器打开`project.pbxproj`,删除`OTHER_LDFLAGS`的地方,保存,回到 Xcode,编译通过。

因为我的工程已经对 "HEADER_SEARCH_PATHS" 和"OTHER_LDFLAGS"做过配置,

所以 在对应的工程Build Settings中对应的地方填上:

$(inherited) ,解决;

3,

在使用cocospods的时候,如果修改了导入的第三方库源文件,那么当使用pod update的时候修改的代码会被作者的原文件覆盖掉。
所以问题来了,遇到确实需要修改源代码的时候,解决方案
1. 不用cocoapods改用手动导入第三方库

2. 将需要修改的第三方库fork一份到自己的github,在里面做完修改之后,将podfile修改为:
platform :ios, '7.0'
pod '要导入的库', :git => 'https://github.com/我的github/要导入的库' 

 

前言:

 一种新的第三方库管理工具:Carthage

如何使用Carthage管理iOS依赖库

Podfile Syntax Reference v1.1.0.rc.3

https://guides.cocoapods.org/syntax/podfile.html

免责声明:文章转载自《iOS 如何在一个已经存在多个project的workspace中引入cocoapods管理第三方类库》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇转:CXF学习笔记一:如何创建、发布和访问基于CXF的服务Windows ping加时间戳下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

SaltStack匹配target-第六篇

练习内容 Salt远程执行中目标选择常用的模式 1.通配符匹配 2.正则表达式匹配 3.List支持 4.Grains匹配 5.IP地址匹配 6.混合匹配 7.Node groups 远程执行格式 target就是我们要选择的minion salt '<target>' <function> [argumen...

Ant基础

一 Ant 介绍 Ant是构建工具,用来实现软件的自动化的构建,类似于VisualStudio的project文件,Linux上构建C++的makefile,Ant通常用来构建Java程序。 Ant是基于XML的文件,所以更容易阅读;Ant是用Java实现的,本身支持跨平台;Ant基于插件的方式开发,本身内置了常用的大部分的插件,而且第三方的扩展也很容易...

再见,Java 8!Java 17 终于免费了,史上最快的 JDK。。

文 | 局长 出品 | OSC开源社区(ID:oschina2013) Java 17 已正式发布,新版本提供了不少新特性和功能增强。不过对于大多数项目而言,往往需要更改代码才能利用到这些新变化,但性能除外 —— 开发者只需要升级 JDK 版本,就能免费获得性能提升。 规划调度引擎 OptaPlanner 项目负责人对 JDK 17、JDK 16 和 JD...

iOS 添加启动图片

之前添加启动图片,一直都是通过添加LaunchImage来实现,见链接 http://www.cnblogs.com/jys509/p/4856068.html 这种方法,就需要给每个尺寸添加图片。 在Xcode 7 之后,建议使用LaunchScreen.storyboard,因为这种,只需要提供两张图片就行了。 背景图片只需要符合16:9就可以了,...

vue-router路由跳转,实现target: _blank,单独打开一个标签页

1,编程式路由跳转 let { href } = this.$router.resolve({ path: '/help-center' }) window.open(href, '_blank') 2,页面标签跳转 <div class="item-fore7 cur">注册即代表同意 <router-link ta...

Python 并发总结,多线程,多进程,异步IO

1 测量函数运行时间 importtime defprofile(func): def wrapper(*args, **kwargs): importtime start =time.time() func(*args, **kwargs) end =time.time()...