如何在iOS上自动导入静态库使用的框架?

我的公司为iOS应用程序创建了一个静态库.对于开发人员来说,一个令人讨厌的步骤是他们必须手动链接库所使用的所有必需框架,否则会导致编译器错误有些混乱.

我以前认为这是不可能的,但Chartboost公司声称automatically link against non-default frameworks就像AdSupport和StoreKit.基于我在他们的示例应用程序中的测试(可从链接页面获得),到目前为止似乎是这种情况(即使在链接静态库的应用程序中禁用“启用模块”和“自动链接框架”).

在创建静态库时是否有某种方法可以启用此功能?我已经尝试在Xcode中启用模块和“Link Frameworks Automatically”LLVM选项,但到目前为止还没有能够使它工作.

解决方法

在进行函数方法调用之前,有一段代码称为CBDynamicallyLoadedDependencies,它在相应的系统库上调用dlopen().

我的原始答案不正确. dlopen()调用就在x86代码中.在设备上,它有所不同,但我的ARM组件不够强大,无法弄明白.我只能说,有一段代码可以作为所需功能的蹦床,并引用系统库文件(如/System/Library/Frameworks/AdSupport.framework/AdSupport).

但重点是,它不是一个简单的项目技巧,使其正常工作.涉及内部代码.

相关文章

UITabBarController 是 iOS 中用于管理和显示选项卡界面的一...
UITableView的重用机制避免了频繁创建和销毁单元格的开销,使...
Objective-C中,类的实例变量(instance variables)和属性(...
从内存管理的角度来看,block可以作为方法的传入参数是因为b...
WKWebView 是 iOS 开发中用于显示网页内容的组件,它是在 iO...
OC中常用的多线程编程技术: 1. NSThread NSThread是Objecti...