1

所以我一直在使用 Amazon Web Services 构建一个项目,我决定要添加本地存储,所以我添加了 podfile 'FMDB'(使用此处找到的教学视频:https: //www.youtube.com/watch ?v=D5tE61gzIVs)。添加 podfile 后,出现以下错误:

 Undefined symbols for architecture x86_64:
  "_AWSSNSErrorDomain", referenced from:
      ___88-[AWSPushManager interceptApplication:didRegisterForRemoteNotificationsWithDeviceToken:]_block_invoke.239 in AWSMobileHubHelper(AWSPushManager.o)
  "_OBJC_CLASS_$_AWSLambdaInvoker", referenced from:
      objc-class-ref in AWSMobileHubHelper(AWSCloudLogic.o)
  "_OBJC_CLASS_$_AWSS3", referenced from:
      objc-class-ref in AWSMobileHubHelper(AWSContentManager.o)
     (maybe you meant: _OBJC_CLASS_$_AWSS3ContentProvider)
  "_OBJC_CLASS_$_AWSS3GetPreSignedURLRequest", referenced from:
      objc-class-ref in AWSMobileHubHelper(AWSContentManager.o)
  "_OBJC_CLASS_$_AWSS3ListObjectsOutput", referenced from:
      objc-class-ref in AWSMobileHubHelper(AWSContentManager.o)
  "_OBJC_CLASS_$_AWSS3ListObjectsRequest", referenced from:
      objc-class-ref in AWSMobileHubHelper(AWSContentManager.o)
  "_OBJC_CLASS_$_AWSS3PreSignedURLBuilder", referenced from:
      objc-class-ref in AWSMobileHubHelper(AWSContentManager.o)
  "_OBJC_CLASS_$_AWSSNS", referenced from:
      objc-class-ref in AWSMobileHubHelper(AWSPushManager.o)
  "_OBJC_CLASS_$_AWSSNSCreatePlatformEndpointInput", referenced from:
      objc-class-ref in AWSMobileHubHelper(AWSPushManager.o)
  "_OBJC_CLASS_$_AWSSNSGetEndpointAttributesInput", referenced from:
      objc-class-ref in AWSMobileHubHelper(AWSPushManager.o)
  "_OBJC_CLASS_$_AWSSNSSetEndpointAttributesInput", referenced from:
      objc-class-ref in AWSMobileHubHelper(AWSPushManager.o)
  "_OBJC_CLASS_$_AWSSNSSubscribeInput", referenced from:
      objc-class-ref in AWSMobileHubHelper(AWSPushManager.o)
  "_OBJC_CLASS_$_AWSSNSUnsubscribeInput", referenced from:
      objc-class-ref in AWSMobileHubHelper(AWSPushManager.o)
  "_OBJC_CLASS_$_GIDSignIn", referenced from:
      objc-class-ref in AWSMobileHubHelper(AWSGoogleSignInProvider.o)
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

其中很多我什至没有在我的应用程序中使用(例如 AWSGoogleSignInProvider)。我还尝试通过删除 -ObjC 并为我正在使用的每个 AWS 框架添加“-force_load(框架路径)”来更改“其他链接器标志”下的内容。但是,当我这样做时,我只会得到linker command failed with exit code 1. 我还尝试添加在 amazon sdk 中找到的所有 podfile(在此处找到:https ://github.com/aws/aws-sdk-ios ),但仍然存在以下错误:"_OBJC_CLASS_$_GIDSignIn", referenced from: objc-class-ref in AWSMobileHubHelper(AWSGoogleSignInProvider.o) ld: symbol(s) not found for architecture x86_64 clang: error: linker command failed with exit code 1 (use -v to see invocation).

有人知道我能为此做些什么吗?因为我确实需要将本地存储与我的 AWS 数据库一起使用,但我不确定如何修复这些错误。谢谢你。

4

2 回答 2

0

打开 Pod 文件pod-projectname.debug.xcconfig并从OTHER_LDFLAGS. 这解决了这个问题。

于 2017-08-16T07:50:50.427 回答
0

这看起来像是这里问题的重复...
https://forums.aws.amazon.com/message.jspa?messageID=754901

请尝试以下操作...

如果您使用的是 Cocoa Pods,请确保您拥有“use_frameworks!” 在你的 Podfile 中的一行,像这样......

平台:ios,'8.1'
使用_frameworks!

目标 'MySampleApp' 做
  pod 'whateverpodyouwantgoeshere'
结尾

如果您不使用 Cocoa Pod,请确保您的链接器设置与 AWS Mobile Hub 示例应用程序项目下载中的设置完全一致。

于 2016-12-07T18:59:56.777 回答