首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Cocoapods重复符号- Google

Cocoapods重复符号- Google
EN

Stack Overflow用户
提问于 2015-01-23 07:57:41
回答 3查看 1.8K关注 0票数 1

两天前我已经完成了pod update,一切顺利,我可以构建这个项目。日志:

代码语言:javascript
复制
Removing DTAlertView
Downloading dependencies
Using GTMHTTPFetcher (0.1.0)
Using Google-API-Client (0.1.1)
Using Google-Maps-iOS-SDK (1.9.0)
Using KissXML (5.0)
Using MGSwipeTableCell (1.3.3)
Installing RNBlurModalView (0.1.0)
Using gtm-oauth2 (0.1.0)
Using iVersion (1.11.4)
Using libextobjc (0.4.1)
Generating Pods project
Integrating client project

现在我不得不再次执行pod update,但是现在我无法构建这个项目。日志:

代码语言:javascript
复制
Removing RNBlurModalView
Downloading dependencies
Installing GTMHTTPFetcher 1.141 (was 0.1.0)
Using Google-API-Client (0.1.1)
Installing Google-Maps-iOS-SDK 1.9.1 (was 1.9.0)
Using KissXML (5.0)
Installing MGSwipeTableCell 1.3.5 (was 1.3.3)
Installing gtm-http-fetcher (1.0.141)
Installing gtm-oauth2 1.0.125 (was 0.1.0)
Using iVersion (1.11.4)
Using libextobjc (0.4.1)
Generating Pods project
Integrating client project

[!] GTMHTTPFetcher has been deprecated in favor of gtm-http-fetcher

今天我需要完成一个功能,而我的项目没有构建。怎样做才能使它至少能够构建呢?pod install没有帮助。我注意到Google-Maps-iOS-SDK的版本跳转可能使GTMHTTPFetcher变得一团糟,所以我尝试在podfile版本1.9.0中设置:

代码语言:javascript
复制
inhibit_all_warnings!

pod 'libextobjc', '~> 0.4'
pod 'KissXML', '~> 5.0'
pod 'Google-Maps-iOS-SDK', '1.9.0'
pod 'Google-API-Client', '~> 0.1'
pod 'MGSwipeTableCell', '~> 1.0'
pod 'iVersion', '~> 1.10'

但没什么用。可能Google客户端与谷歌地图不兼容,因为如果我删除google:

代码语言:javascript
复制
Removing GTMHTTPFetcher
Removing Google-API-Client
Removing gtm-http-fetcher
Removing gtm-oauth2
Downloading dependencies
Installing Google-Maps-iOS-SDK (1.9.1)
Using KissXML (5.0)
Using MGSwipeTableCell (1.3.5)
Using iVersion (1.11.4)
Using libextobjc (0.4.1)
Generating Pods project
Integrating client project

而且它可能会起作用(无法尝试,许多来自代码的连接)。错误:

代码语言:javascript
复制
[... many more of same type as below ...]
duplicate symbol _OBJC_METACLASS_$_GTMReadMonitorInputStream in:
    /Users/username/Library/Developer/Xcode/DerivedData/project-cvbrvhbcpumxaohhjabqvxiyzotr/Build/Products/Debug-iphoneos/libPods-GTMHTTPFetcher.a(GTMReadMonitorInputStream.o)
    /Users/username/Library/Developer/Xcode/DerivedData/project-cvbrvhbcpumxaohhjabqvxiyzotr/Build/Products/Debug-iphoneos/libPods-gtm-http-fetcher.a(GTMReadMonitorInputStream.o)
ld: 163 duplicate symbols for architecture armv7
clang: error: linker command failed with exit code 1 (use -v to see invocation)

清理或删除派生数据都没有帮助。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2015-07-14 08:01:10

我把这个作为更新的答案发布。

在@peter-segerblom的文章中,我注意到GTMHTTPFetcher实际上是gtm-http-fetcher的旧版本。由于可弥补性问题,我无法更新Google-API-Client。临时解决办法是:

  1. 开放~/.cocoapods/repos
  2. 删除gtm-oauth2 (>= 1.0.125)
  3. 删除gtm-http-fetcher (整体)
  4. 删除GTMHTTPFetcher (> 0.1.0)

无论如何,我们都需要更新库来使用bitcode,因为这个项目甚至不会在新的Xcode中构建。因此,我更新了我的代码,并将版本更改为:

代码语言:javascript
复制
pod 'Google-API-Client', '~> 0.1'

至:

代码语言:javascript
复制
pod 'Google-API-Client', '~> 1.0'

现在,只需要等待Google将库更新为bitcode需求,就像新的Google-API-Client一样,一切都正常工作,我们不需要通过删除.cocoapods/repos进行这些黑客攻击。

票数 0
EN

Stack Overflow用户

发布于 2015-05-31 10:47:18

我见过这个案子已经解决了。打开Pod的两个配置文件

Pods-your_app_name.调试器

Pods-your_app_name.Relase.xcconfig

然后删除与"GTMHTTPFetcher“相关的任何内容。重新打扫和建造。会很好的。

到目前为止,这个解决方案并不是最好的解决方案。因为每次您运行命令“installed”时,GTMHTTPFetcher都会自动安装,您(包括我)必须按照上面的步骤再次删除。不管怎么说,到目前为止,这是我唯一的解决方案。

票数 2
EN

Stack Overflow用户

发布于 2015-01-23 08:04:17

这两个看起来也是一回事?

代码语言:javascript
复制
Installing gtm-http-fetcher (1.0.141)
Installing GTMHTTPFetcher 1.141 (was 0.1.0)

因为错误是链接器中的重复符号,所以我会尝试删除其中的一个。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28105382

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档