将BuddySDK平台添加到包含RestKit的现有项目

时间:2014-07-28 01:28:28

标签: ios xcode afnetworking cocoapods

我正在尝试将BuddySDK添加到包含已安装的以下pod的现有项目中:

platform:ios, '7.0'
pod 'RestKit', '~> 0.23'
pod 'SSKeychain', '~> 1.2'
pod 'Reachability', '~> 3.1'

添加pod'BuddySDK'后,'〜> 2.0'到项目我在Xcode中遇到错误,如下所示:

 /Users/Damiano/Library/Developer/Xcode/DerivedData/XXXXXXXXX-bgsmofalkolyjqamlxutjirazrta/Build/Products/Debug-iphoneos/libPods.a(BPAFURLRequestSerialization.o)
duplicate symbol _OBJC_CLASS_$_AFHTTPBodyPart in:
    /Users/Damiano/Library/Developer/Xcode/DerivedData/XXXXXXXXX-bgsmofalkolyjqamlxutjirazrta/Build/Products/Debug-iphoneos/libPods.a(AFHTTPClient.o)
    /Users/Damiano/Library/Developer/Xcode/DerivedData/XXXXXXXXX-bgsmofalkolyjqamlxutjirazrta/Build/Products/Debug-iphoneos/libPods.a(BPAFURLRequestSerialization.o)
duplicate symbol _OBJC_METACLASS_$_AFHTTPBodyPart in:
    /Users/Damiano/Library/Developer/Xcode/DerivedData/XXXXXXXXX-bgsmofalkolyjqamlxutjirazrta/Build/Products/Debug-iphoneos/libPods.a(AFHTTPClient.o)
    /Users/Damiano/Library/Developer/Xcode/DerivedData/XXXXXXXXX-bgsmofalkolyjqamlxutjirazrta/Build/Products/Debug-iphoneos/libPods.a(BPAFURLRequestSerialization.o)
ld: 39 duplicate symbols for architecture arm64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

我正在寻找其他问题的解决方案,例如this,但没有任何运气。 它看起来像是一个错误,因为BuddySDK包含已存在于RestKit中的AFNetworking类。 enter image description here

从Podfile中删除RestKit pod后,问题就消失了。 有谁能告诉我怎么做才能成功安装两个pod(RestKit和BuddySDK)?

提前致谢

2 个答案:

答案 0 :(得分:1)

RestKit和BuddySDK都依赖于AFNetworking。问题是BuddySDK's spec不会将此作为依赖项添加到CocoaPods中,而是捆绑AFNetworking本身。因此,当您的项目中包含多个版本的AFNetworking时,会出现重复的符号。要解决此问题,您应该在BuddySDK GitHub page上打开一个问题,以便他们解决此问题。

答案 1 :(得分:0)

Buddy既提供预编译库,也提供Cocoapods支持。任何开源依赖关系都是"包装"进入Buddy特定名称,以防止在部署为预编译二进制文件时出现重复符号问题。

我相信您遇到的问题是您已将BuddySDK包含在预编译库以及 Cocoapod中。

但是,对于大多数情况,基思的解释是正确的:)。