integrating parse framework with existing iOS app including Aviary SDK
Asked Answered
C

2

18

I'm developing a photography app which uses the Aviary SDK and everything is working perfectly but we decided that push notifications needs to be included in the project. Basically if I include the parse framework, then try to build, I get a multitude of errors.

Undefined symbols for architecture armv7:
  "_ACAccountTypeIdentifierTwitter", referenced from:
      -[PF_Twitter getLocalTwitterAccountAsync] in Parse(PF_Twitter.o)
  "_OBJC_CLASS_$_SLRequest", referenced from:
      objc-class-ref in Parse(PF_Twitter.o)
  "___cxa_get_exception_ptr", referenced from:
      google_breakpadPFC_::ExceptionHandler::InstallHandler() in ParseCrashReporting(exception_handler.o)
  "std::string::find_first_not_of(char const*, unsigned long, unsigned long) const", referenced from:
      MacStringUtilsPFC_::IntegerValueAtIndex(std::string&, unsigned int) in ParseCrashReporting(string_utilities.o)
  "std::string::substr(unsigned long, unsigned long) const", referenced from:
      MacStringUtilsPFC_::IntegerValueAtIndex(std::string&, unsigned int) in ParseCrashReporting(string_utilities.o)
  "_OBJC_CLASS_$_ACAccountStore", referenced from:
      objc-class-ref in Parse(PF_Twitter.o)
  "std::string::find_first_of(char const*, unsigned long, unsigned long) const", referenced from:
      MacStringUtilsPFC_::IntegerValueAtIndex(std::string&, unsigned int) in ParseCrashReporting(string_utilities.o)
  "___cxa_end_catch", referenced from:
      google_breakpadPFC_::ExceptionHandler::InstallHandler() in ParseCrashReporting(exception_handler.o)
      _BreakpadReleasePFC_ in ParseCrashReporting(Breakpad.o)
      _BreakpadAddUploadParameterPFC_ in ParseCrashReporting(Breakpad.o)
      _BreakpadCreatePFC_ in ParseCrashReporting(Breakpad.o)
      _BreakpadSetKeyValuePFC_ in ParseCrashReporting(Breakpad.o)
      _BreakpadRemoveUploadParameterPFC_ in ParseCrashReporting(Breakpad.o)
      _BreakpadGetCrashReportCountPFC_ in ParseCrashReporting(Breakpad.o)
      ...
  "std::string::assign(char const*, unsigned long)", referenced from:
      MacStringUtilsPFC_::ConvertToString(__CFString const*) in ParseCrashReporting(string_utilities.o)
  "operator delete(void*)", referenced from:
      google_breakpadPFC_::IosExceptionMinidumpGeneratorPFC_::~IosExceptionMinidumpGeneratorPFC_() in ParseCrashReporting(ios_exception_minidump_generator.o)
      google_breakpadPFC_::DynamicImages::DynamicImages(unsigned int) in ParseCrashReporting(dynamic_images.o)
      google_breakpadPFC_::ReadTaskString(unsigned int, unsigned long long) in ParseCrashReporting(dynamic_images.o)
      void google_breakpadPFC_::ReadImageInfo<google_breakpadPFC_::MachO64>(google_breakpadPFC_::DynamicImages&, unsigned long long) in ParseCrashReporting(dynamic_images.o)
      void google_breakpadPFC_::ReadImageInfo<google_breakpadPFC_::MachO32>(google_breakpadPFC_::DynamicImages&, unsigned long long) in ParseCrashReporting(dynamic_images.o)
      std::vector<google_breakpadPFC_::DynamicImageRef, std::allocator<google_breakpadPFC_::DynamicImageRef> >::reserve(unsigned long) in ParseCrashReporting(dynamic_images.o)
      std::vector<google_breakpadPFC_::DynamicImageRef, std::allocator<google_breakpadPFC_::DynamicImageRef> >::_M_insert_aux(__gnu_cxx::__normal_iterator<google_breakpadPFC_::DynamicImageRef*, std::vector<google_breakpadPFC_::DynamicImageRef, std::allocator<google_breakpadPFC_::DynamicImageRef> > >, google_breakpadPFC_::DynamicImageRef const&) in ParseCrashReporting(dynamic_images.o)
      ...
  "___cxa_guard_release", referenced from:
      +[BreakpadControllerPFC_ sharedInstance] in ParseCrashReporting(BreakpadController.o)
  "vtable for __cxxabiv1::__class_type_info", referenced from:
      typeinfo for google_breakpadPFC_::MinidumpGenerator in ParseCrashReporting(minidump_generator.o)
  NOTE: a missing vtable usually means the first non-inline virtual member function has no definition.
  "std::string::append(char const*, unsigned long)", referenced from:
      google_breakpadPFC_::MinidumpGenerator::UniqueNameInDirectory(std::string const&, std::string*) in ParseCrashReporting(minidump_generator.o)
  "_OBJC_CLASS_$_SLComposeViewController", referenced from:
      objc-class-ref in Parse(PF_Twitter.o)
  "___cxa_guard_abort", referenced from:
      +[BreakpadControllerPFC_ sharedInstance] in ParseCrashReporting(BreakpadController.o)
  "vtable for std::bad_alloc", referenced from:
      google_breakpadPFC_::ExceptionHandler::InstallHandler() in ParseCrashReporting(exception_handler.o)
  NOTE: a missing vtable usually means the first non-inline virtual member function has no definition.
  "std::string::assign(std::string const&)", referenced from:
      void google_breakpadPFC_::ReadImageInfo<google_breakpadPFC_::MachO64>(google_breakpadPFC_::DynamicImages&, unsigned long long) in ParseCrashReporting(dynamic_images.o)
      void google_breakpadPFC_::ReadImageInfo<google_breakpadPFC_::MachO32>(google_breakpadPFC_::DynamicImages&, unsigned long long) in ParseCrashReporting(dynamic_images.o)
      google_breakpadPFC_::MinidumpGenerator::UniqueNameInDirectory(std::string const&, std::string*) in ParseCrashReporting(minidump_generator.o)
      MacStringUtilsPFC_::IntegerValueAtIndex(std::string&, unsigned int) in ParseCrashReporting(string_utilities.o)
      google_breakpadPFC_::ExceptionHandler::ExceptionHandler(std::string const&, bool (*)(void*), bool (*)(char const*, char const*, void*, bool), void*, bool, char const*) in ParseCrashReporting(exception_handler.o)
      google_breakpadPFC_::ExceptionHandler::UpdateNextID() in ParseCrashReporting(exception_handler.o)
  "std::bad_alloc::~bad_alloc()", referenced from:
      google_breakpadPFC_::ExceptionHandler::InstallHandler() in ParseCrashReporting(exception_handler.o)
  "___cxa_guard_acquire", referenced from:
      +[BreakpadControllerPFC_ sharedInstance] in ParseCrashReporting(BreakpadController.o)
  "std::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(std::string const&)", referenced from:
      void google_breakpadPFC_::ReadImageInfo<google_breakpadPFC_::MachO64>(google_breakpadPFC_::DynamicImages&, unsigned long long) in ParseCrashReporting(dynamic_images.o)
      void google_breakpadPFC_::ReadImageInfo<google_breakpadPFC_::MachO32>(google_breakpadPFC_::DynamicImages&, unsigned long long) in ParseCrashReporting(dynamic_images.o)
      google_breakpadPFC_::DynamicImage::DynamicImage(unsigned char*, unsigned long, unsigned long long, std::string, unsigned long, unsigned int, int) in ParseCrashReporting(dynamic_images.o)
      google_breakpadPFC_::MinidumpGenerator::UniqueNameInDirectory(std::string const&, std::string*) in ParseCrashReporting(minidump_generator.o)
      google_breakpadPFC_::MinidumpGenerator::WriteModuleStream(unsigned int, MDRawModule*) in ParseCrashReporting(minidump_generator.o)
  "typeinfo for std::bad_alloc", referenced from:
      GCC_except_table22 in ParseCrashReporting(exception_handler.o)
  "std::__throw_length_error(char const*)", referenced from:
      std::vector<MDMemoryDescriptor, google_breakpadPFC_::PageStdAllocator<MDMemoryDescriptor> >::_M_insert_aux(__gnu_cxx::__normal_iterator<MDMemoryDescriptor*, std::vector<MDMemoryDescriptor, google_breakpadPFC_::PageStdAllocator<MDMemoryDescriptor> > >, MDMemoryDescriptor const&) in ParseCrashReporting(ios_exception_minidump_generator.o)
      std::vector<google_breakpadPFC_::DynamicImageRef, std::allocator<google_breakpadPFC_::DynamicImageRef> >::reserve(unsigned long) in ParseCrashReporting(dynamic_images.o)
      std::vector<google_breakpadPFC_::DynamicImageRef, std::allocator<google_breakpadPFC_::DynamicImageRef> >::_M_insert_aux(__gnu_cxx::__normal_iterator<google_breakpadPFC_::DynamicImageRef*, std::vector<google_breakpadPFC_::DynamicImageRef, std::allocator<google_breakpadPFC_::DynamicImageRef> > >, google_breakpadPFC_::DynamicImageRef const&) in ParseCrashReporting(dynamic_images.o)
      std::vector<unsigned char, std::allocator<unsigned char> >::_M_fill_insert(__gnu_cxx::__normal_iterator<unsigned char*, std::vector<unsigned char, std::allocator<unsigned char> > >, unsigned long, unsigned char const&) in ParseCrashReporting(dynamic_images.o)
      std::vector<MDMemoryDescriptor, google_breakpadPFC_::PageStdAllocator<MDMemoryDescriptor> >::reserve(unsigned long) in ParseCrashReporting(minidump_generator.o)
  "std::__throw_out_of_range(char const*)", referenced from:
      google_breakpadPFC_::MinidumpGenerator::UniqueNameInDirectory(std::string const&, std::string*) in ParseCrashReporting(minidump_generator.o)
  "std::string::_Rep::_M_destroy(std::allocator<char> const&)", referenced from:
      void google_breakpadPFC_::ReadImageInfo<google_breakpadPFC_::MachO64>(google_breakpadPFC_::DynamicImages&, unsigned long long) in ParseCrashReporting(dynamic_images.o)
      void google_breakpadPFC_::ReadImageInfo<google_breakpadPFC_::MachO32>(google_breakpadPFC_::DynamicImages&, unsigned long long) in ParseCrashReporting(dynamic_images.o)
      google_breakpadPFC_::MinidumpGenerator::GatherSystemInformation() in ParseCrashReporting(minidump_generator.o)
      google_breakpadPFC_::MinidumpGenerator::UniqueNameInDirectory(std::string const&, std::string*) in ParseCrashReporting(minidump_generator.o)
      google_breakpadPFC_::MinidumpGenerator::WriteModuleStream(unsigned int, MDRawModule*) in ParseCrashReporting(minidump_generator.o)
      google_breakpadPFC_::DynamicImages::~DynamicImages() in ParseCrashReporting(minidump_generator.o)
      MacStringUtilsPFC_::ConvertToString(__CFString const*) in ParseCrashReporting(string_utilities.o)
      ...
  "std::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(char const*, std::allocator<char> const&)", referenced from:
      google_breakpadPFC_::ReadTaskString(unsigned int, unsigned long long) in ParseCrashReporting(dynamic_images.o)
      MacStringUtilsPFC_::IntegerValueAtIndex(std::string&, unsigned int) in ParseCrashReporting(string_utilities.o)
      BreakpadPFC_::HandleUncaughtException(NSException*) in ParseCrashReporting(Breakpad.o)
      BreakpadPFC_::Initialize(NSDictionary*) in ParseCrashReporting(Breakpad.o)
  "std::string::append(std::string const&)", referenced from:
      google_breakpadPFC_::MinidumpGenerator::UniqueNameInDirectory(std::string const&, std::string*) in ParseCrashReporting(minidump_generator.o)
  "___gxx_personality_sj0", referenced from:
      google_breakpadPFC_::IosExceptionMinidumpGeneratorPFC_::IosExceptionMinidumpGeneratorPFC_(NSException*) in ParseCrashReporting(ios_exception_minidump_generator.o)
      google_breakpadPFC_::IosExceptionMinidumpGeneratorPFC_::~IosExceptionMinidumpGeneratorPFC_() in ParseCrashReporting(ios_exception_minidump_generator.o)
      google_breakpadPFC_::IosExceptionMinidumpGeneratorPFC_::~IosExceptionMinidumpGeneratorPFC_() in ParseCrashReporting(ios_exception_minidump_generator.o)
      google_breakpadPFC_::IosExceptionMinidumpGeneratorPFC_::WriteCrashingContextARM(MDLocationDescriptor*) in ParseCrashReporting(ios_exception_minidump_generator.o)
      google_breakpadPFC_::IosExceptionMinidumpGeneratorPFC_::WriteExceptionStream(MDRawDirectory*) in ParseCrashReporting(ios_exception_minidump_generator.o)
      google_breakpadPFC_::IosExceptionMinidumpGeneratorPFC_::WriteThreadStream(unsigned int, MDRawThread*) in ParseCrashReporting(ios_exception_minidump_generator.o)
      bool google_breakpadPFC_::MinidumpFileWriter::WriteStringCore<char>(char const*, unsigned int, MDLocationDescriptor*) in ParseCrashReporting(minidump_file_writer.o)
      ...
  "_SLServiceTypeTwitter", referenced from:
      -[PF_Twitter getAccessTokenForReverseAuthAsync:localTwitterAccount:] in Parse(PF_Twitter.o)
      -[PF_Twitter getLocalTwitterAccountAsync] in Parse(PF_Twitter.o)
  "operator new[](unsigned long)", referenced from:
      google_breakpadPFC_::IosExceptionMinidumpGeneratorPFC_::WriteThreadStream(unsigned int, MDRawThread*) in ParseCrashReporting(ios_exception_minidump_generator.o)
      ___32-[BreakpadControllerPFC_ start:]_block_invoke in ParseCrashReporting(BreakpadController.o)
      MacStringUtilsPFC_::ConvertToString(__CFString const*) in ParseCrashReporting(string_utilities.o)
  "vtable for __cxxabiv1::__si_class_type_info", referenced from:
      typeinfo for google_breakpadPFC_::IosExceptionMinidumpGeneratorPFC_ in ParseCrashReporting(ios_exception_minidump_generator.o)
  NOTE: a missing vtable usually means the first non-inline virtual member function has no definition.
  "operator new(unsigned long)", referenced from:
      void google_breakpadPFC_::ReadImageInfo<google_breakpadPFC_::MachO64>(google_breakpadPFC_::DynamicImages&, unsigned long long) in ParseCrashReporting(dynamic_images.o)
      void google_breakpadPFC_::ReadImageInfo<google_breakpadPFC_::MachO32>(google_breakpadPFC_::DynamicImages&, unsigned long long) in ParseCrashReporting(dynamic_images.o)
      std::vector<google_breakpadPFC_::DynamicImageRef, std::allocator<google_breakpadPFC_::DynamicImageRef> >::_M_insert_aux(__gnu_cxx::__normal_iterator<google_breakpadPFC_::DynamicImageRef*, std::vector<google_breakpadPFC_::DynamicImageRef, std::allocator<google_breakpadPFC_::DynamicImageRef> > >, google_breakpadPFC_::DynamicImageRef const&) in ParseCrashReporting(dynamic_images.o)
      std::vector<unsigned char, std::allocator<unsigned char> >::vector<unsigned char*>(unsigned char*, unsigned char*, std::allocator<unsigned char> const&) in ParseCrashReporting(dynamic_images.o)
      google_breakpadPFC_::DynamicImageRef* std::vector<google_breakpadPFC_::DynamicImageRef, std::allocator<google_breakpadPFC_::DynamicImageRef> >::_M_allocate_and_copy<google_breakpadPFC_::DynamicImageRef*>(unsigned long, google_breakpadPFC_::DynamicImageRef*, google_breakpadPFC_::DynamicImageRef*) in ParseCrashReporting(dynamic_images.o)
      std::vector<unsigned char, std::allocator<unsigned char> >::_M_fill_insert(__gnu_cxx::__normal_iterator<unsigned char*, std::vector<unsigned char, std::allocator<unsigned char> > >, unsigned long, unsigned char const&) in ParseCrashReporting(dynamic_images.o)
      google_breakpadPFC_::MinidumpGenerator::MinidumpGenerator(unsigned int, unsigned int) in ParseCrashReporting(minidump_generator.o)
      ...
  "___cxa_begin_catch", referenced from:
      ___clang_call_terminate in ParseCrashReporting(ios_exception_minidump_generator.o)
      google_breakpadPFC_::ExceptionHandler::InstallHandler() in ParseCrashReporting(exception_handler.o)
      _BreakpadReleasePFC_ in ParseCrashReporting(Breakpad.o)
      _BreakpadAddUploadParameterPFC_ in ParseCrashReporting(Breakpad.o)
      _BreakpadCreatePFC_ in ParseCrashReporting(Breakpad.o)
      _BreakpadSetKeyValuePFC_ in ParseCrashReporting(Breakpad.o)
      _BreakpadRemoveUploadParameterPFC_ in ParseCrashReporting(Breakpad.o)
      ...
  "std::string::append(unsigned long, char)", referenced from:
      google_breakpadPFC_::MinidumpGenerator::UniqueNameInDirectory(std::string const&, std::string*) in ParseCrashReporting(minidump_generator.o)
  "std::terminate()", referenced from:
      ___clang_call_terminate in ParseCrashReporting(ios_exception_minidump_generator.o)
  "std::string::_Rep::_S_empty_rep_storage", referenced from:
      google_breakpadPFC_::ReadTaskString(unsigned int, unsigned long long) in ParseCrashReporting(dynamic_images.o)
      void google_breakpadPFC_::ReadImageInfo<google_breakpadPFC_::MachO64>(google_breakpadPFC_::DynamicImages&, unsigned long long) in ParseCrashReporting(dynamic_images.o)
      void google_breakpadPFC_::ReadImageInfo<google_breakpadPFC_::MachO32>(google_breakpadPFC_::DynamicImages&, unsigned long long) in ParseCrashReporting(dynamic_images.o)
      google_breakpadPFC_::MinidumpGenerator::GatherSystemInformation() in ParseCrashReporting(minidump_generator.o)
      google_breakpadPFC_::MinidumpGenerator::UniqueNameInDirectory(std::string const&, std::string*) in ParseCrashReporting(minidump_generator.o)
      google_breakpadPFC_::MinidumpGenerator::WriteModuleStream(unsigned int, MDRawModule*) in ParseCrashReporting(minidump_generator.o)
      google_breakpadPFC_::DynamicImages::~DynamicImages() in ParseCrashReporting(minidump_generator.o)
      ...
  "std::__throw_bad_alloc()", referenced from:
      std::vector<google_breakpadPFC_::DynamicImageRef, std::allocator<google_breakpadPFC_::DynamicImageRef> >::_M_insert_aux(__gnu_cxx::__normal_iterator<google_breakpadPFC_::DynamicImageRef*, std::vector<google_breakpadPFC_::DynamicImageRef, std::allocator<google_breakpadPFC_::DynamicImageRef> > >, google_breakpadPFC_::DynamicImageRef const&) in ParseCrashReporting(dynamic_images.o)
      google_breakpadPFC_::DynamicImageRef* std::vector<google_breakpadPFC_::DynamicImageRef, std::allocator<google_breakpadPFC_::DynamicImageRef> >::_M_allocate_and_copy<google_breakpadPFC_::DynamicImageRef*>(unsigned long, google_breakpadPFC_::DynamicImageRef*, google_breakpadPFC_::DynamicImageRef*) in ParseCrashReporting(dynamic_images.o)
  "operator delete[](void*)", referenced from:
      google_breakpadPFC_::IosExceptionMinidumpGeneratorPFC_::WriteThreadStream(unsigned int, MDRawThread*) in ParseCrashReporting(ios_exception_minidump_generator.o)
      ___32-[BreakpadControllerPFC_ start:]_block_invoke in ParseCrashReporting(BreakpadController.o)
      MacStringUtilsPFC_::ConvertToString(__CFString const*) in ParseCrashReporting(string_utilities.o)
ld: symbol(s) not found for architecture armv7

clang: error: linker command failed with exit code 1 (use -v to see invocation)

**I'm using the latest xcode release and I'm just wondering if there's a fix for these errors. Thanks All :) **

Carmina answered 21/12, 2014 at 10:37 Comment(2)
How have you added the parse framework. And did you follow all required steps in order to add it correctly?Illconsidered
Yes,i have add it correctly . my other linker flags : -Objc -all_loadCarmina
V
69

I faced the same issues. Link against libstdc++.6.dylib in Build Phases and it will solve your problems.

Victor answered 23/12, 2014 at 22:14 Comment(2)
This helped. Also make sure if you set Parse to any other targets (i.e. Test target) that you add all frameworks to those targets as well.Makeweight
this did not work for me... adding Bolts.framemwork did the solving for me... I removed libstdc++.6.dylib as it did not resolve the issueBotswana
M
7

Including 'libstdc++.6.dylib' framework as suggested by XIII AND making sure you add all the other frameworks to ALL TARGETS fixed it for me.

When I add the Parse SDK, I set it to both my App target and Test target (unit test), but forgot to add all the frameworks in Build Phases for the Test target. Once I did that, and added the missing 'libstdc++.6.dylib' framework, it worked for me.

Makeweight answered 25/2, 2015 at 23:37 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.