Приложение не запускается после добавления подфайла "FMDB", связанного с веб-сервисами Amazon

Поэтому я строил проект с использованием Amazon Web Services и решил, что хочу добавить локальное хранилище, поэтому я добавил подфайл 'FMDB' (используя обучающее видео, найденное здесь: https://www.youtube.com/watch?v=D5tE61gzIVs). После добавления подфайла я получаю следующие ошибки:

 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 и добавив "-force_load (путь к платформе)" для каждой среды AWS, которую я использую. Однако когда я делаю это, я просто получаю ошибку linker command failed with exit code 1, Я также попытался добавить все подфайлы, найденные в amazon sdk (находится здесь: 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, но я не уверен, как я могу исправить эти ошибки. Спасибо.

2 ответа

Откройте файл Pod pod-projectname.debug.xcconfig и удалите -ObjC из OTHER_LDFLAGS, Это решает проблему.

Это похоже на дубликат проблемы здесь...
https://forums.aws.amazon.com/message.jspa?messageID=754901

Пожалуйста, попробуйте следующее...

Если вы используете какао-стручки, убедитесь, что у вас есть "use_frameworks!" строка в вашем Podfile, вот так...

платформа:ios, '8.1'
use_frameworks!

цель "MySampleApp" сделать под "все, что ты хочешь здесь" конец

Если вы не используете "Какао-стручки", убедитесь, что параметры компоновщика установлены точно так же, как они установлены в примере загрузки проекта приложения AWS Mobile Hub.

С уважением,
Андрей С
Опыт разработчиков мобильных приложений AWS

Другие вопросы по тегам