Amazon Latest SDK 与 iOS 的集成给出了错误

Amazon Latest SDK integration with iOS gives error

我正在为 iPhone 开发应用程序并集成了 Amazon SDK v 2.0.10 以执行文件传输。

当我尝试集成最新的 SDK v 即 2.0.13 时,出现以下错误。请帮帮我。

Errors:
duplicate symbol _OBJC_IVAR_$_BFWebViewAppLinkResolverWebViewDelegate._didFailLoadWithError in:
    Cryptall/Classes/Third Party Libraries/Amazon S3/frameworks/AWSiOSSDKv2.framework/AWSiOSSDKv2(BFWebViewAppLinkResolver.o)
    Cryptall/Classes/Third Party Libraries/Amazon S3/third-party/Bolts.framework/Bolts(BFWebViewAppLinkResolver.o)
duplicate symbol _OBJC_IVAR_$_BFWebViewAppLinkResolverWebViewDelegate._hasLoaded in:
    Cryptall/Classes/Third Party Libraries/Amazon S3/frameworks/AWSiOSSDKv2.framework/AWSiOSSDKv2(BFWebViewAppLinkResolver.o)
    Cryptall/Classes/Third Party Libraries/Amazon S3/third-party/Bolts.framework/Bolts(BFWebViewAppLinkResolver.o)
duplicate symbol _OBJC_METACLASS_$_BFWebViewAppLinkResolverWebViewDelegate in:
    Cryptall/Classes/Third Party Libraries/Amazon S3/frameworks/AWSiOSSDKv2.framework/AWSiOSSDKv2(BFWebViewAppLinkResolver.o)
    Cryptall/Classes/Third Party Libraries/Amazon S3/third-party/Bolts.framework/Bolts(BFWebViewAppLinkResolver.o)
duplicate symbol _OBJC_CLASS_$_BFWebViewAppLinkResolverWebViewDelegate in:
    Cryptall/Classes/Third Party Libraries/Amazon S3/frameworks/AWSiOSSDKv2.framework/AWSiOSSDKv2(BFWebViewAppLinkResolver.o)
    Cryptall/Classes/Third Party Libraries/Amazon S3/third-party/Bolts.framework/Bolts(BFWebViewAppLinkResolver.o)
duplicate symbol _OBJC_METACLASS_$_BFWebViewAppLinkResolver in:
    Cryptall/Classes/Third Party Libraries/Amazon S3/frameworks/AWSiOSSDKv2.framework/AWSiOSSDKv2(BFWebViewAppLinkResolver.o)
    Cryptall/Classes/Third Party Libraries/Amazon S3/third-party/Bolts.framework/Bolts(BFWebViewAppLinkResolver.o)
duplicate symbol _OBJC_CLASS_$_BFWebViewAppLinkResolver in:
    Cryptall/Classes/Third Party Libraries/Amazon S3/frameworks/AWSiOSSDKv2.framework/AWSiOSSDKv2(BFWebViewAppLinkResolver.o)
    Cryptall/Classes/Third Party Libraries/Amazon S3/third-party/Bolts.framework/Bolts(BFWebViewAppLinkResolver.o)
duplicate symbol _kBFMultipleErrorsError in:
    Cryptall/Classes/Third Party Libraries/Amazon S3/frameworks/AWSiOSSDKv2.framework/AWSiOSSDKv2(Bolts.o)
    Cryptall/Classes/Third Party Libraries/Amazon S3/third-party/Bolts.framework/Bolts(Bolts.o)
duplicate symbol _OBJC_METACLASS_$_Bolts in:
    Cryptall/Classes/Third Party Libraries/Amazon S3/frameworks/AWSiOSSDKv2.framework/AWSiOSSDKv2(Bolts.o)
    Cryptall/Classes/Third Party Libraries/Amazon S3/third-party/Bolts.framework/Bolts(Bolts.o)
duplicate symbol _OBJC_CLASS_$_Bolts in:
    Cryptall/Classes/Third Party Libraries/Amazon S3/frameworks/AWSiOSSDKv2.framework/AWSiOSSDKv2(Bolts.o)
    Cryptall/Classes/Third Party Libraries/Amazon S3/third-party/Bolts.framework/Bolts(Bolts.o)
duplicate symbol _OBJC_METACLASS_$_PodsDummy_Pods_Bolts in:
    Cryptall/Classes/Third Party Libraries/Amazon S3/frameworks/AWSiOSSDKv2.framework/AWSiOSSDKv2(Pods-Bolts-dummy.o)
    Cryptall/Classes/Third Party Libraries/Amazon S3/third-party/Bolts.framework/Bolts(Pods-Bolts-dummy.o)
duplicate symbol _OBJC_CLASS_$_PodsDummy_Pods_Bolts in:
    Cryptall/Classes/Third Party Libraries/Amazon S3/frameworks/AWSiOSSDKv2.framework/AWSiOSSDKv2(Pods-Bolts-dummy.o)
    Cryptall/Classes/Third Party Libraries/Amazon S3/third-party/Bolts.framework/Bolts(Pods-Bolts-dummy.o)
ld: 212 duplicate symbols for architecture armv7s

此错误消息表示 class 在 link 时间在您的多个框架/目标中发现了同名的 class。

在这种情况下,它主要抱怨来自 Bolts 框架的 classes 在主要 AWSiOSSDKv2.frameworkBolts.framework.

中被发现

我刚刚下载了 iOS from here 的 Amazon SDK 并对其进行了反编译,它似乎确实包含了 Bolts classes(实际上是快速浏览似乎在主要的 AWS SDK 中包含其他第三方框架的大部分 classes。

这确实违背了他们integration documentation here他们所说的

Following the same procedure, add the following frameworks, located in the third-party directory, into your project.

这是亚马逊如何构建和分发其 SDK 的错误。

您现在有两个可能的修复方法:

  1. 从您的项目中删除 third-party 文件夹中的框架。它应该都是 Just Work™
  2. 按照上述指南中的说明使用 Cocoapods 安装 AWS SDK。

我建议您联系亚马逊,为未来的用户报告此问题。