Приложение не запускается после добавления подфайла "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