代码之家  ›  专栏  ›  技术社区  ›  sonoDamiano

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

  •  0
  • sonoDamiano  · 技术社区  · 10 年前

    我正在尝试将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 回复  |  直到 7 年前
        1
  •  1
  •   Keith Smiley    10 年前

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

        2
  •  0
  •   Erik Kerber    10 年前

    Buddy同时提供预编译库和Cocoapods支持。任何开源依赖项都“包装”到Buddy特定的名称中,以防止作为预编译二进制文件部署时出现重复符号问题。

    我相信您遇到的问题是,您在预编译的库中都包含了BuddySDK 以及 可可树。

    然而,基思的解释在大多数情况下都是正确的:)。