2013-05-10 55 views
3

我更新Facebook的iOS SDK從3.2到3.5我得到這個錯誤時,我的應用程序在iOS的設備與大於5(例如4.3.5)。NSJSONSerialization崩潰與Facebook的iOS SDK 3.5

dyld: Symbol not found: _OBJC_CLASS_$_NSJSONSerialization 
... 
Expected in: /System/Library/Frameworks/Foundation.framework/Foundation 

我能避免這種崩潰,如果我設置基礎框架作爲可選,但我不認爲這是最好的選擇。

是否有另一種方法使Facebook SDK可以在iOS版本早於版本5的設備上工作?

回答

2

從Facebook的iOS SDK V3.5的changelog: http://developers.facebook.com/ios/change-log-3.x/

刪除支持的iOS 4 * Facebook的6.0下降爲iOS 4.x的支持要保持同步,Facebook SDK也不支持iOS 4.x.

所以,如果你更新至Facebook SDK 3.5,你失去的iOS 4.x的

0

該類在ios5之前不可用 - 查看Xcode文檔窗口中的類引用。你需要做的是抓住JSONKit,一個開源的類,並使用它。用法大多相同。您需要將此類構建到您的應用程序中,然後在Apple類存在時動態測試,然後使用適當的類,或者始終使用開源類。

請注意,JSONKit未被ARC化,因此如果應用的其餘部分是ARC,則需要爲其設置適當的編譯標誌。

編輯:所以你可能會變得聰明,並編寫自己的存根,在舊版本中將調用橋接到JSONKit。從概念上講,你應該能夠做到這一點,但是我擔心如果FB代碼是爲ios5開發的,那麼潛在的代碼中也可能存在其他的Api問題 - 而且你老花了很多時間不斷嘗試查找和修復它們。

+0

謝謝大衛的支持。我知道該類僅在iOS 5以後纔可用。關鍵是Facebook SDK正在使用它,而不是直接使用我的應用程序。 – 2013-05-10 12:21:08