我正在尝试将解析sdk添加到现有项目中,我从Facebook引用和Google Breakpad PFC中获得了一堆Mach-O链接器错误。
我添加了所有框架并按照解析说明进行操作 https://www.parse.com/apps/quickstart#parse_push/ios/swift/existing
我没有使用-ObjC链接器标志。
我做错了什么?
示例错误 -
"_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_$_FBSDKAccessToken", referenced from:
objc-class-ref in ParseFacebookUtilsV4(PFFacebookUtils.o)
objc-class-ref in ParseFacebookUtilsV4(PFFacebookAuthenticationProvider.o)
"_OBJC_CLASS_$_FBSDKApplicationDelegate", referenced from:
objc-class-ref in ParseFacebookUtilsV4(PFFacebookUtils.o)
"_OBJC_CLASS_$_FBSDKLoginManager", referenced from:
objc-class-ref in ParseFacebookUtilsV4(PFFacebookAuthenticationProvider.o)
"_OBJC_CLASS_$_FBSDKSettings", referenced from:
objc-class-ref in ParseFacebookUtilsV4(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)
...
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)
...
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)
...
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)
...
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 i386
clang: error: linker command failed with exit code 1 (use -v to see invocation)
答案 0 :(得分:0)
您是否尝试将 Accounts.framework 和 Social.framework 添加到您的项目中(我知道Parse没有这样说)?你可以添加一些关于错误的更多细节(很难从你的描述中知道真正的错误......)