NSJSONSerialization在Facebook iOS SDK 3.5中崩溃

3

我将Facebook iOS SDK从3.2更新到3.5后,在iOS 5以下的设备上(例如4.3.5)运行我的应用程序时,出现了这个错误。

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

如果我将Foundation框架设置为可选项,就可以避免这个崩溃,但我认为这不是最好的选择。

有没有其他方法使Facebook SDK在iOS 5之前的设备上工作?

2个回答

2
从Facebook iOS SDK changelog v3.5中: 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,一个开源类,并使用它。用法大多相同。您需要将此类构建到您的应用程序中,然后动态测试苹果类是否存在,然后使用适当的类,或者只使用开源类。

请注意,JSONKit没有进行ARC化,因此如果您的应用程序的其余部分是ARC,则需要为其设置适当的编译标志。

编辑:因此,您可以聪明地编写自己的存根,以在旧版本中桥接对JSONKit的调用。从概念上讲,您应该能够使其正常工作,但我的担心是,如果FB代码是为ios5开发的,则代码中可能还存在其他Api问题 - 并且您可能会花费很多时间不断尝试找到并修复它们。


谢谢David。我知道这个类仅在iOS 5及以上版本中可用。关键是Facebook SDK正在使用它,而不是我的应用程序直接使用它。 - Alberto Gonzalez

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接