我正在尝试在我的一个应用程序中实现Facebook,因此遵循了Hackbook的官方Facebook教程.
https://developers.facebook.com/docs/howtos/login-with-facebook-using-ios-sdk/
我实现了所描述的一切,我没有收到任何错误或警告.但是当我尝试构建应用程序时,我会得到17个Mach-O链接器错误.
Undefined symbols for architecture i386: "_FBSessionStateChangednotification",referenced from: -[ForeverMainViewController sessionStateChanged:state:error:] in ForeverMainViewController.o "_sqlite3_bind_double",referenced from: -[FbcacheIndex _updateEntryInDatabaseForKey:entry:] in FacebookSDK(FbcacheIndex.o) -[FbcacheIndex _writeEntryInDatabase:] in FacebookSDK(FbcacheIndex.o) "_sqlite3_bind_int",referenced from: -[FbcacheIndex _updateEntryInDatabaseForKey:entry:] in FacebookSDK(FbcacheIndex.o) -[FbcacheIndex _writeEntryInDatabase:] in FacebookSDK(FbcacheIndex.o) -[FbcacheIndex _trimDatabase] in FacebookSDK(FbcacheIndex.o) "_sqlite3_bind_text",referenced from: -[FbcacheIndex _updateEntryInDatabaseForKey:entry:] in FacebookSDK(FbcacheIndex.o) -[FbcacheIndex _writeEntryInDatabase:] in FacebookSDK(FbcacheIndex.o) -[FbcacheIndex _readEntryFromDatabase:] in FacebookSDK(FbcacheIndex.o) -[FbcacheIndex _removeEntryFromDatabaseForKey:] in FacebookSDK(FbcacheIndex.o) "_sqlite3_close",referenced from: ___23-[FbcacheIndex dealloc]_block_invoke_0 in FacebookSDK(FbcacheIndex.o) "_sqlite3_column_double",referenced from: -[FbcacheIndex _readEntryFromDatabase:] in FacebookSDK(FbcacheIndex.o) "_sqlite3_column_int",referenced from: -[FbcacheIndex _readEntryFromDatabase:] in FacebookSDK(FbcacheIndex.o) -[FbcacheIndex _fetchCurrentdiskUsage] in FacebookSDK(FbcacheIndex.o) -[FbcacheIndex _trimDatabase] in FacebookSDK(FbcacheIndex.o) "_sqlite3_column_text",referenced from: -[FbcacheIndex _readEntryFromDatabase:] in FacebookSDK(FbcacheIndex.o) -[FbcacheIndex _trimDatabase] in FacebookSDK(FbcacheIndex.o) "_sqlite3_errmsg",referenced from: _releaseStatement in FacebookSDK(FbcacheIndex.o) -[FbcacheIndex _updateEntryInDatabaseForKey:entry:] in FacebookSDK(FbcacheIndex.o) _initializeStatement in FacebookSDK(FbcacheIndex.o) -[FbcacheIndex _writeEntryInDatabase:] in FacebookSDK(FbcacheIndex.o) -[FbcacheIndex _readEntryFromDatabase:] in FacebookSDK(FbcacheIndex.o) -[FbcacheIndex _fetchCurrentdiskUsage] in FacebookSDK(FbcacheIndex.o) -[FbcacheIndex _removeEntryFromDatabaseForKey:] in FacebookSDK(FbcacheIndex.o) ... "_sqlite3_exec",referenced from: ___36-[FbcacheIndex initWithCacheFolder:]_block_invoke_0 in FacebookSDK(FbcacheIndex.o) "_sqlite3_finalize",referenced from: _releaseStatement in FacebookSDK(FbcacheIndex.o) "_sqlite3_open_v2",referenced from: ___36-[FbcacheIndex initWithCacheFolder:]_block_invoke_0 in FacebookSDK(FbcacheIndex.o) "_sqlite3_prepare_v2",referenced from: _initializeStatement in FacebookSDK(FbcacheIndex.o) "_sqlite3_reset",referenced from: _initializeStatement in FacebookSDK(FbcacheIndex.o) "_sqlite3_step",referenced from: -[FbcacheIndex _updateEntryInDatabaseForKey:entry:] in FacebookSDK(FbcacheIndex.o) -[FbcacheIndex _writeEntryInDatabase:] in FacebookSDK(FbcacheIndex.o) -[FbcacheIndex _readEntryFromDatabase:] in FacebookSDK(FbcacheIndex.o) -[FbcacheIndex _fetchCurrentdiskUsage] in FacebookSDK(FbcacheIndex.o) -[FbcacheIndex _removeEntryFromDatabaseForKey:] in FacebookSDK(FbcacheIndex.o) -[FbcacheIndex _dropTrimmingTable] in FacebookSDK(FbcacheIndex.o) -[FbcacheIndex _trimDatabase] in FacebookSDK(FbcacheIndex.o) ... ld: symbol(s) not found for architecture i386
重新实施后,清理应用程序,确保一切都在那里,我没有想法.我也在另一个应用程序中实现了它,但是再次出现了错误.来自Facebook的给定样品按照预期工作.我在互联网上做了各种各样的笔尖,但是他们都没有工作到目前为止.也许有人在这里知道一些关于API,并有一个很好的提示我:)
解决方法
我想你错过了这一行
Nsstring * const FBSessionStateChangednotification = @“FBSessionStateChangednotification”;
并添加对-lsqlite3.0的引用
见https://developers.facebook.com/docs/getting-started/getting-started-with-the-ios-sdk/#project