是否可以在运行时有条件地拒绝在iOS中加载静态打包的框架?
我在我的应用程序中有一个第三方框架,它在iOS 6和iOS 7上运行良好,但是它在iOS 5的负载上崩溃。该框架使用NSLayoutConstraint,dyld在开始时崩溃,表示符号找不到。
理想情况下,我希望从加载中禁用该框架,并向用户展示一个UIAlertView,说明只有当用户试图访问该功能时,才能在iOS6+中使用该功能,但我不知道如何不加载第三方框架。
第三方框架不在我的控制之下,我无法改变它。
我尝试将它随意链接并使用NSClassFromString,如果我删除对框架的所有直接引用,那么它根本就不会链接到我的应用程序中。此外,如果我强制在链接器标志中使用-force进行包含,那么应用程序仍然会在iOS 5上崩溃。
我也很感激其他的想法,因为我对这件事已经束手无策了。:(
发布于 2014-07-24 13:24:48
这是,不可能。因为库是静态链接的,所以没有什么是不能在运行时加载的。iOS上的动态框架将在iOS 8中引入。
您唯一的选择是:
https://stackoverflow.com/questions/24933503
复制相似问题