集成parse框架与现有的iOS应用,包括Aviary SDK。

时间:2023-01-22 17:33:11

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.

我正在开发一个摄影应用程序,它使用Aviary SDK,一切都很完美,但是我们决定需要将推送通知包含在项目中。基本上,如果我包含了解析框架,然后尝试构建,我就会得到大量的错误。

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 :) **

**我正在使用最新的xcode版本,我只是想知道是否有修复这些错误的方法。谢谢:* *

2 个解决方案

#1


69  

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

我面临着同样的问题。链接对libstdc + +。6。dylib在构建阶段,它将解决您的问题。

#2


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.

包括“libstdc + +。6。如XIII所建议的dylib框架,并确保将所有其他框架添加到所有目标中,为我修复它。

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.

当我添加Parse SDK时,我将它设置为我的应用程序目标和测试目标(单元测试),但是忘记在构建阶段为测试目标添加所有框架。一旦我这样做了,并添加了缺失的“libstdc++.6”。dylib框架,对我有用。

#1


69  

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

我面临着同样的问题。链接对libstdc + +。6。dylib在构建阶段,它将解决您的问题。

#2


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.

包括“libstdc + +。6。如XIII所建议的dylib框架,并确保将所有其他框架添加到所有目标中,为我修复它。

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.

当我添加Parse SDK时,我将它设置为我的应用程序目标和测试目标(单元测试),但是忘记在构建阶段为测试目标添加所有框架。一旦我这样做了,并添加了缺失的“libstdc++.6”。dylib框架,对我有用。