拒绝在iOS 5中加载第三方框架

拒绝在iOS 5中加载第三方框架,ios,objective-c,linker,Ios,Objective C,Linker,是否可以在运行时有条件地拒绝在iOS中加载静态打包的框架 我的应用程序中有一个第三方框架,它在iOS 6和iOS 7上运行正常,但在iOS 5上加载时崩溃。所讨论的框架使用NSLayoutConstraint,dyld在应用程序启动时崩溃,称未找到符号 理想情况下,我希望禁用框架加载,并向用户显示UIAlertView,表示只有在他们尝试访问它时,此功能才在iOS6+中可用,但我不知道如何不加载第三方框架 第三方框架不在我的控制之下;我不能改变它 我尝试选择性地链接它,并使用NSClassFro

是否可以在运行时有条件地拒绝在iOS中加载静态打包的框架

我的应用程序中有一个第三方框架,它在iOS 6和iOS 7上运行正常,但在iOS 5上加载时崩溃。所讨论的框架使用NSLayoutConstraint,dyld在应用程序启动时崩溃,称未找到符号

理想情况下,我希望禁用框架加载,并向用户显示UIAlertView,表示只有在他们尝试访问它时,此功能才在iOS6+中可用,但我不知道如何不加载第三方框架

第三方框架不在我的控制之下;我不能改变它

我尝试选择性地链接它,并使用NSClassFromString,如果我删除了对框架的所有直接引用,那么它就根本不会链接到我的应用程序中。此外,如果我在链接器标志中使用-force强制包含,那么应用程序在iOS5上仍然会崩溃

我也希望有其他想法;我对此束手无策

这是不可能的。由于库是静态链接的,所以在运行时没有任何东西不能加载。iOS 8将引入iOS上的动态框架

您唯一的选择是:

根本不要使用第三方框架。 如果必须源代码并删除AutoLayout用法,请对其进行修改。 在应用程序中删除iOS 5支持。
放弃对iOS5的支持。框架,不是。捆绑,是吗?是的,是框架,不是捆绑。我希望我能放弃对iOS 5的支持,这不是我的选择我想您需要构建一个包来包含框架,然后在运行时选择性地加载该包……在包含iOS 7之前,不允许也不可能在iOS上加载动态框架。只有iOS8引入了动态框架。在这种情况下,捆绑没有帮助!