将Parse添加到现有FB SDK中时,Apple Mach-0链接器错误

时间:2015-06-19 23:42:17

标签: ios objective-c facebook parse-platform google-plus

我的第一个问题,请原谅我的错误。 我创建了一个应用程序,并设法集成谷歌加登录(sdk 1.7.1)和fb登录(sdk 4.2.0)。一切都很好,直到这里。稍后,为了让人们手动注册,我添加了解析(sdk版本1.7.4)。

现在,当构建设置中没有-ObjC链接器标志时,它构建正常,我可以注册并使用解析进行操作。但FB和G +都会抛出错误:“接口生成器文件中的未知类FBSDKLoginButton,Interface Builder文件中的未知类GPPSignInButton,Interface Builder文件中的未知类FBSDKProfilePictureView”等。但是,我可以使用自定义按钮登录到facebook。谷歌根本没有回应。两个按钮都是具有自定义类的视图。

如果我删除-ObjC链接器标志,我会得到42个错误,如下所示:

    Undefined symbols for architecture x86_64:
  "_FBTokenInformationExpirationDateKey", referenced from:
      -[PFFacebookTokenCachingStrategy cacheTokenInformation:] in ParseFacebookUtils(PFFacebookTokenCachingStrategy.o)
      -[PFFacebookTokenCachingStrategy expirationDate] in ParseFacebookUtils(PFFacebookTokenCachingStrategy.o)
      -[PFFacebookTokenCachingStrategy setExpirationDate:] in ParseFacebookUtils(PFFacebookTokenCachingStrategy.o)
  "_FBTokenInformationTokenKey", referenced from:
      -[PFFacebookTokenCachingStrategy accessToken] in ParseFacebookUtils(PFFacebookTokenCachingStrategy.o)
      -[PFFacebookTokenCachingStrategy setAccessToken:] in ParseFacebookUtils(PFFacebookTokenCachingStrategy.o)
  "_FBTokenInformationUserFBIDKey", referenced from:
      -[PFFacebookTokenCachingStrategy facebookId] in ParseFacebookUtils(PFFacebookTokenCachingStrategy.o)
      -[PFFacebookTokenCachingStrategy setFacebookId:] in ParseFacebookUtils(PFFacebookTokenCachingStrategy.o)
  "_OBJC_CLASS_$_FBAppCall", referenced from:
      objc-class-ref in ParseFacebookUtils(PFFacebookAuthenticationProvider.o)
  "_OBJC_CLASS_$_FBRequest", referenced from:
      objc-class-ref in ParseFacebookUtils(PFFacebookAuthenticationProvider.o)
  "_OBJC_CLASS_$_FBSession", referenced from:
      objc-class-ref in ParseFacebookUtils(PFFacebookAuthenticationProvider.o)
  "_OBJC_CLASS_$_FBSessionTokenCachingStrategy", referenced from:
      _OBJC_CLASS_$_PFFacebookTokenCachingStrategy in ParseFacebookUtils(PFFacebookTokenCachingStrategy.o)
  "_OBJC_METACLASS_$_FBSessionTokenCachingStrategy", referenced from:
      _OBJC_METACLASS_$_PFFacebookTokenCachingStrategy in ParseFacebookUtils(PFFacebookTokenCachingStrategy.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)
  "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)
  "std::string::_Rep::_M_destroy(std::allocator<char> const&)", referenced from:
      BreakpadPFC_::HandleUncaughtException(NSException*) in ParseCrashReporting(Breakpad.o)
      BreakpadPFC_::Initialize(NSDictionary*) in ParseCrashReporting(Breakpad.o)
      BreakpadPFC_::GenerateReport(NSDictionary*) in ParseCrashReporting(Breakpad.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::ExceptionHandler(bool (*)(void*, int, int, int, unsigned int), void*, bool) in ParseCrashReporting(exception_handler.o)
      google_breakpadPFC_::ExceptionHandler::~ExceptionHandler() in ParseCrashReporting(exception_handler.o)
      google_breakpadPFC_::ExceptionHandler::UpdateNextID() in ParseCrashReporting(exception_handler.o)
      ...
  "std::string::_Rep::_S_empty_rep_storage", referenced from:
      BreakpadPFC_::HandleUncaughtException(NSException*) in ParseCrashReporting(Breakpad.o)
      BreakpadPFC_::Initialize(NSDictionary*) in ParseCrashReporting(Breakpad.o)
      BreakpadPFC_::GenerateReport(NSDictionary*) in ParseCrashReporting(Breakpad.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::ExceptionHandler(bool (*)(void*, int, int, int, unsigned int), void*, bool) in ParseCrashReporting(exception_handler.o)
      google_breakpadPFC_::ExceptionHandler::~ExceptionHandler() in ParseCrashReporting(exception_handler.o)
      google_breakpadPFC_::ExceptionHandler::UpdateNextID() in ParseCrashReporting(exception_handler.o)
      ...
  "std::string::append(char const*, unsigned long)", referenced from:
      google_breakpadPFC_::MinidumpGenerator::UniqueNameInDirectory(std::string const&, std::string*) in ParseCrashReporting(minidump_generator.o)
  "std::string::append(std::string const&)", referenced from:
      google_breakpadPFC_::MinidumpGenerator::UniqueNameInDirectory(std::string const&, std::string*) in ParseCrashReporting(minidump_generator.o)
  "std::string::append(unsigned long, char)", referenced from:
      google_breakpadPFC_::MinidumpGenerator::UniqueNameInDirectory(std::string const&, std::string*) in ParseCrashReporting(minidump_generator.o)
  "std::string::assign(char const*, unsigned long)", referenced from:
      MacStringUtilsPFC_::ConvertToString(__CFString const*) in ParseCrashReporting(string_utilities.o)
  "std::string::assign(std::string const&)", referenced from:
      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)
      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)
      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::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(char const*, std::allocator<char> const&)", referenced from:
      BreakpadPFC_::HandleUncaughtException(NSException*) in ParseCrashReporting(Breakpad.o)
      BreakpadPFC_::Initialize(NSDictionary*) in ParseCrashReporting(Breakpad.o)
      BreakpadPFC_::GenerateReport(NSDictionary*) in ParseCrashReporting(Breakpad.o)
      MacStringUtilsPFC_::IntegerValueAtIndex(std::string&, unsigned int) in ParseCrashReporting(string_utilities.o)
      google_breakpadPFC_::ReadTaskString(unsigned int, unsigned long long) in ParseCrashReporting(dynamic_images.o)
      google_breakpadPFC_::UTF16ToUTF8(std::vector<unsigned short, std::allocator<unsigned short> > const&, bool) in ParseCrashReporting(string_conversion.o)
  "std::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(std::string const&)", referenced from:
      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)
      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)
  "std::bad_alloc::~bad_alloc()", referenced from:
      google_breakpadPFC_::ExceptionHandler::InstallHandler() in ParseCrashReporting(exception_handler.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)
      std::vector<unsigned short, std::allocator<unsigned short> >::_M_fill_insert(__gnu_cxx::__normal_iterator<unsigned short*, std::vector<unsigned short, std::allocator<unsigned short> > >, unsigned long, unsigned short const&) in ParseCrashReporting(string_conversion.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(minidump_generator.o)
      std::vector<MDMemoryDescriptor, google_breakpadPFC_::PageStdAllocator<MDMemoryDescriptor> >::reserve(unsigned long) in ParseCrashReporting(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<unsigned short, std::allocator<unsigned short> >::_M_fill_insert(__gnu_cxx::__normal_iterator<unsigned short*, std::vector<unsigned short, std::allocator<unsigned short> > >, unsigned long, unsigned short const&) in ParseCrashReporting(string_conversion.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::terminate()", referenced from:
      ___clang_call_terminate in ParseCrashReporting(Breakpad.o)
      ___clang_call_terminate in ParseCrashReporting(exception_handler.o)
      ___clang_call_terminate in ParseCrashReporting(minidump_generator.o)
      ___clang_call_terminate in ParseCrashReporting(ios_exception_minidump_generator.o)
      ___clang_call_terminate in ParseCrashReporting(minidump_file_writer.o)
      ___clang_call_terminate in ParseCrashReporting(file_id.o)
      ___clang_call_terminate in ParseCrashReporting(macho_id.o)
      ...
  "typeinfo for std::bad_alloc", referenced from:
      GCC_except_table22 in ParseCrashReporting(exception_handler.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.
  "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.
  "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.
  "operator delete[](void*)", referenced from:
      ___32-[BreakpadControllerPFC_ start:]_block_invoke in ParseCrashReporting(BreakpadController.o)
      MacStringUtilsPFC_::ConvertToString(__CFString const*) in ParseCrashReporting(string_utilities.o)
      google_breakpadPFC_::UTF16ToUTF8(std::vector<unsigned short, std::allocator<unsigned short> > const&, bool) in ParseCrashReporting(string_conversion.o)
  "operator delete(void*)", referenced from:
      _BreakpadCreatePFC_ in ParseCrashReporting(Breakpad.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::ExceptionHandler(bool (*)(void*, int, int, int, unsigned int), void*, bool) in ParseCrashReporting(exception_handler.o)
      google_breakpadPFC_::ExceptionHandler::~ExceptionHandler() in ParseCrashReporting(exception_handler.o)
      google_breakpadPFC_::ExceptionHandler::UninstallHandler(bool) in ParseCrashReporting(exception_handler.o)
      google_breakpadPFC_::ExceptionHandler::InstallHandler() in ParseCrashReporting(exception_handler.o)
      google_breakpadPFC_::MinidumpGenerator::MinidumpGenerator(unsigned int, unsigned int) in ParseCrashReporting(minidump_generator.o)
      ...
  "operator new[](unsigned long)", referenced from:
      ___32-[BreakpadControllerPFC_ start:]_block_invoke in ParseCrashReporting(BreakpadController.o)
      MacStringUtilsPFC_::ConvertToString(__CFString const*) in ParseCrashReporting(string_utilities.o)
      google_breakpadPFC_::UTF16ToUTF8(std::vector<unsigned short, std::allocator<unsigned short> > const&, bool) in ParseCrashReporting(string_conversion.o)
  "operator new(unsigned long)", referenced from:
      _BreakpadCreatePFC_ in ParseCrashReporting(Breakpad.o)
      google_breakpadPFC_::ExceptionHandler::InstallHandler() in ParseCrashReporting(exception_handler.o)
      google_breakpadPFC_::MinidumpGenerator::MinidumpGenerator(unsigned int, unsigned int) in ParseCrashReporting(minidump_generator.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> >::_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)
      ...
  "___cxa_begin_catch", referenced from:
      _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)
      _BreakpadKeyValuePFC_ in ParseCrashReporting(Breakpad.o)
      _BreakpadRemoveKeyValuePFC_ in ParseCrashReporting(Breakpad.o)
      ...
  "___cxa_end_catch", referenced from:
      _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)
      _BreakpadKeyValuePFC_ in ParseCrashReporting(Breakpad.o)
      _BreakpadRemoveKeyValuePFC_ in ParseCrashReporting(Breakpad.o)
      ...
  "___cxa_get_exception_ptr", referenced from:
      google_breakpadPFC_::ExceptionHandler::InstallHandler() in ParseCrashReporting(exception_handler.o)
  "___cxa_guard_abort", referenced from:
      +[BreakpadControllerPFC_ sharedInstance] in ParseCrashReporting(BreakpadController.o)
  "___cxa_guard_acquire", referenced from:
      +[BreakpadControllerPFC_ sharedInstance] in ParseCrashReporting(BreakpadController.o)
  "___cxa_guard_release", referenced from:
      +[BreakpadControllerPFC_ sharedInstance] in ParseCrashReporting(BreakpadController.o)
  "___gxx_personality_v0", referenced from:
      +[BreakpadControllerPFC_ sharedInstance] in ParseCrashReporting(BreakpadController.o)
      ___32-[BreakpadControllerPFC_ start:]_block_invoke in ParseCrashReporting(BreakpadController.o)
      Dwarf Exception Unwind Info (__eh_frame) in ParseCrashReporting(BreakpadController.o)
      BreakpadPFC_::HandleUncaughtException(NSException*) in ParseCrashReporting(Breakpad.o)
      _BreakpadReleasePFC_ in ParseCrashReporting(Breakpad.o)
      BreakpadPFC_::Initialize(NSDictionary*) in ParseCrashReporting(Breakpad.o)
      _BreakpadAddUploadParameterPFC_ in ParseCrashReporting(Breakpad.o)
      ...
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

我尝试过的: 1.广泛搜索这个主题 2.从解析和facebook中删除bolt.framework,清理,添加和再次构建。 3.为FBSDK,Google sdk和Parse添加了搜索路径到Framework搜索路径。 4.重新检查所有应用程序ID 5.添加了各自文档中提到的所有必要框架。

将xcode与objC 6.3.2和iphone 6一起用作我的模拟器。

我知道我必须尽快整合谷歌地图,并且我一直在阅读没有-ObjC链接器标志的地图将无法使用。 (我可能错了)。 任何帮助将不胜感激。谢谢。

0 个答案:

没有答案