即使在添加FacebookSDK之后,解析也会出现Mach-O错误

即使在添加FacebookSDK之后,解析也会出现Mach-O错误,facebook,swift,google-maps,parse-platform,mach-o,Facebook,Swift,Google Maps,Parse Platform,Mach O,将Google Maps SDK添加到我的Swift应用程序后,我需要使用-ObjC链接器标志 这当然会导致Parse发疯并引用Facebook上的所有内容。在线查看之后,解决方案似乎是添加FacebookSDK。我多次尝试添加它(将FBSDKCoreKit.framework拖到项目中),但都没有成功。我仍然会遇到同样的错误: Undefined symbols for architecture x86_64: "_FBTokenInformationExpirationDateKey",

将Google Maps SDK添加到我的Swift应用程序后,我需要使用-ObjC链接器标志

这当然会导致Parse发疯并引用Facebook上的所有内容。在线查看之后,解决方案似乎是添加FacebookSDK。我多次尝试添加它(将FBSDKCoreKit.framework拖到项目中),但都没有成功。我仍然会遇到同样的错误:

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::__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)
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
架构x86_64的未定义符号: “\FBTokenInformationExpirationDateKey”,引用自: -ParseFacebookUtils(PFFacebookTokenCachingStrategy.o)中的[PFFacebookTokenCachingStrategy cacheTokenInformation:] -ParseFacebookUtils(PFFacebookTokenCachingStrategy.o)中的[PFFacebookTokenCachingStrategy expirationDate] -ParseFacebookUtils(PFFacebookTokenCachingStrategy.o)中的[PFFacebookTokenCachingStrategy setExpirationDate:] “\FBTokenInformationTokenKey”,引用自: -ParseFacebookUtils(PFFacebookTokenCachingStrategy.o)中的[PFFacebookTokenCachingStrategy accessToken] -ParseFacebookUtils(PFFacebookTokenCachingStrategy.o)中的[PFFacebookTokenCachingStrategy setAccessToken:] “\FBTokenInformationUserFBIDKey”,引用自: -ParseFacebookUtils(PFFacebookTokenCachingStrategy.o)中的[PFFacebookTokenCachingStrategy facebookId] -ParseFacebookUtils(PFFacebookTokenCachingStrategy.o)中的[PFFacebookTokenCachingStrategy setFacebookId:] “_OBJC_CLASS_$_FBAppCall”,引用自: ParseFacebookUtils中的objc类引用(PFFacebookAuthenticationProvider.o) “_OBJC_CLASS_$_FBRequest”,引用自: ParseFacebookUtils中的objc类引用(PFFacebookAuthenticationProvider.o) “_OBJC_CLASS_$_FBSession”,引用自: ParseFacebookUtils中的objc类引用(PFFacebookAuthenticationProvider.o) “_OBJC_CLASS_$_FBSessionTokenCachingStrategy”,引用自: _ParseFacebookUtils(PFFacebookTokenCachingStrategy.o)中的对象 “对象元类”引用自: _ParseFacebookUtils(PFFacebookTokenCachingStrategy.o)中的OBJC_元类$\PFFacebookTokenCachingStrategy “std::string::find_first_of(char const*,unsigned long,unsigned long)const”,引用自: ParseCrashReporting(string_utilities.o)中的MacStringUtilsPFC_u3;::IntegerValueAtIndex(std::string&,unsigned int) “std::string::find_first_not_of(char const*,unsigned long,unsigned long)const”,引用自: ParseCrashReporting(string_utilities.o)中的MacStringUtilsPFC_u3;::IntegerValueAtIndex(std::string&,unsigned int) “std::string::substr(无符号长、无符号长)常量”,引用自: ParseCrashReporting(string_utilities.o)中的MacStringUtilsPFC_u3;::IntegerValueAtIndex(std::string&,unsigned int) “std::string::_Rep::_M_destroy(std::allocator const&)”,引用自: ParseCrashReporting(Breakpad.o)中的BreakpadPFC_U3;::HandleUncaughtException(NSException*) ParseCrashReporting(Breakpad.o)中的BreakpadPFC_u3;::初始化(NSDictionary*) ParseCrashReporting(Breakpad.o)中的BreakpadPFC_u216;::GenerateReport(NSDictionary*) ParseCrashReporting(exception\u handler.o)中的google\u breakpadPFC\:ExceptionHandler::ExceptionHandler(std::string const&,bool(*)(void*),bool(*)(char const*,char const*,void*,bool),void*,bool,char const*)) ParseCrashReporting(exception_handler.o)中的google_breakpadPFC_uu::ExceptionHandler::ExceptionHandler(bool(*)(void*,int,int,int,int,unsigned int),void*,bool) ParseCrashReporting(exception_handler.o)中的google_breakpadPFC::ExceptionHandler::~ExceptionHandler() ParseCrashReporting(exception_handler.o)中的google_breakpadPFC_::ExceptionHandler::UpdateNextID() ... “std::string::_Rep::_S_empty_Rep_storage”,引用自: ParseCrashReporting(Breakpad.o)中的BreakpadPFC_U3;::HandleUncaughtException(NSException*) ParseCrashReporting(Breakpad.o)中的BreakpadPFC_u3;::初始化(NSDictionary*) ParseCrashReporting(Breakpad.o)中的BreakpadPFC_u216;::GenerateReport(NSDictionary*) ParseCrashReporting(exception\u handler.o)中的google\u breakpadPFC\:ExceptionHandler::ExceptionHandler(std::string const&,bool(*)(void*),bool(*)(char const*,char const*,void*,bool),void*,bool,char const*)) ParseCrashReporting(exception_handler.o)中的google_breakpadPFC_uu::ExceptionHandler::ExceptionHandler(bool(*)(void*,int,int,int,int,unsigned int),void*,bool) ParseCrashReporting(exception_handler.o)中的google_breakpadPFC::ExceptionHandler::~ExceptionHandler() ParseCrashReporting(exception_handler.o)中的google_breakpadPFC_::ExceptionHandler::UpdateNextID() ... “std::string::append(char const*,unsigned long)”,引用自: ParseCrashReporting(minidump_generator.o)中的google_breakpadPFC_U3;::MinidumpGenerator::UniqueNameInDirectory(std::string const&,std::string*) “std::string::append(std::string const&)”,引用自: ParseCrashReporting(minidump_generator.o)中的google_breakpadPFC_U3;::MinidumpGenerator::UniqueNameInDirectory(std::string const&,std::string*) “std::string::append(unsigned long,char)”,引用自: ParseCrashReporting(minidump_generator.o)中的google_breakpadPFC_U3;::MinidumpGenerator::UniqueNameInDirectory(std::string const&,std::string*) “std::string::assign(char const*,unsigned long)”,引用自: ParseCrashReporting(string\u utilities.o)中的MacStringUtilsPFC::ConvertToString(uu CFString const*)) “std::string::assign(std::string const&)”,引用自: ParseCrashReporting(exception\u handler.o)中的google\u breakpadPFC\:ExceptionHandler::ExceptionHandler(std::string const&,bool(*)(void*),bool(*)(char const*,char const*,void*,bool),void*,bool,char const*)) ParseCrashReporting(exception_handler.o)中的google_breakpadPFC_::ExceptionHandler::UpdateNextID() ParseCrashReporting(minidump)中的google_breakpadPFC_uu::MinidumpGenerator::UniqueNameInDirectory(std::string const&,std::string*)
force_load <path/to/GoogleMapsSDK/GoogleMaps.framework>