2012-08-11 20 views
13

Facebook'u uygulamalarımdan birinde uygulamaya çalışıyorum ve bu yüzden Hackbook'taki resmi Facebook Eğitimi'ni takip ediyorum. https://developers.facebook.com/docs/howtos/login-with-facebook-using-ios-sdk/FacebookSDK 3.0 - Apple Mach-O Bağlayıcı Hatası

Açıklandığı gibi her şeyi uygularım ve herhangi bir hata veya uyarı almıyorum. Ancak uygulamayı oluşturmaya çalıştığımda 17 Mach-O Bağlayıcı Hataları alıyorum. her şeyin, reimplementing uygulamayı temizlik yaptıktan sonra

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 

yoktu, ben fikir yokum. Ayrıca başka bir uygulamada da uyguladım, ancak yine hatalar iyi. Facebook'tan verilen örnekler ancak tasarlandığı gibi çalışır. İnternette çeşitli ip uçları yaptım, ama hiçbiri şu ana kadar işe yaramadı. Belki birisi burada API hakkında bir şeyler biliyor ve benim için iyi bir ipucu :)

+0

Aygıt için (iPhone/iPad, ..) oluşturmayı denediniz mi? Bunu denerken farklı hata mesajları var mı? Şu anda bir cihaz kütüphanesine karşı bir simülatör oluşturmaya çalışıyormuşsunuz gibi görünüyor. – Till

+0

Hey, ben iphone ve ipad simülatörü ile ve aynı zamanda cihazımda denedim, ancak hata aynı kalır. – Blade

+0

Tamam, o zaman ... SDK'ya (bu çerçevede yer alması gereken) bağlantıya ilişkin talimatlara uyduğunuzdan emin misiniz? – Till

cevap

19

Sana bu satırı

NSString * const FBSessionStateChangedNotification = @ "FBSessionStateChangedNotification" eksik düşünüyorum sahiptir;

ve -lsqlite3.0

ekleyerek başvuru senin bu

Goto Projesi-> BuildPhase-> Bağlantı İkili-ekle eksik bence https://developers.facebook.com/docs/getting-started/getting-started-with-the-ios-sdk/#project

+0

Teşekkür ederim, aslında referansı unuttum. Aptal ben: D – Blade

+0

Teşekkür ederim ..! Bu gerçekten bana çok yardımcı olur –

+2

Eğer 'NSString * const FBSessionStateChangedNotification = @ "FBSessionStateChangedNotification"; 'eklemek için linker hataları (benim için yinelenen sembolleri 3.0 SDK) alırsınız, ama sqlite3.0 işaret için teşekkürler! proje kurulumunda bu bölüm – cbowns

1

Evet, Çözüm: libsqlite3.dylib'u 7'de armv6 için derledim, bu yüzden Xcode dmg dosyasını (daha sonra 4.2'yi) indirip lib'i ayıkladım.