【发布时间】:2013-05-28 10:50:51
【问题描述】:
我将 Facebook 广告 SDK 集成到我的应用中。但是,SDK 支持的最低 iOS 版本是 5.0,而我的应用的部署目标是 4.3。
而且,正如预期的那样,它在应用启动时崩溃了
dyld: Symbol not found: OBJC_CLASS$_NSJSONSerialization.
它发生在应用启动的早期阶段。调用堆栈看起来像
线程1:
dyld_fatal_error
_dyld_start
所以我想关闭适用于 iOS 4.3 的 Facebook SDK 并保留它适用于 iOS >= 5.0。是否可以?我怎样才能在 xCode 中做到这一点?或者唯一的方法是将我的应用拆分为两个应用:4.3 和 >= 5.0?
更新
根据NSJSONSerialization crash with Facebook iOS SDK 3.5 将Foundation.framework 标记为optional 有帮助。它确实有帮助,但我无法理解。 Foundation.framework 与 Facebook 的东西有什么关系?
【问题讨论】:
-
@Mar0ux 据我了解,这个想法是为框架使用“弱”或“可选”链接。问题是我将 FacebookSDK.framework 手动添加到我的项目中,使其“可选”无济于事。我可以“有条件地”添加这个框架吗?
-
啊,我明白了。您不能真正“有条件地”添加它,因为检查需要在运行时进行。一种选择是在 iOS 5(Social 框架的弱链接。顺便说一句,您是否考虑过放弃对 iOS 4 的支持?它会影响
-
@Mar0ux 我已经将 Social、FacebookSDK 和一堆其他框架标记为“可选”,但它没有帮助。帮助将 Foundation.framework 标记为“可选”(请参阅更新的问题)。我无法理解。