我的公司为 iOS 应用制作了一个静态库。对于开发人员来说,一个烦人的步骤是他们必须手动链接库使用的所有必需框架,如果不这样做会导致有些困惑的编译器错误。
我以前认为这是不可能的,但 Chartboost 公司声称 automatically link against non-default frameworks像 AdSupport 和 StoreKit。根据我在他们的示例应用程序中的测试(可从链接页面获得),到目前为止情况似乎是这样(即使在链接到静态库的应用程序中禁用“启用模块”和“自动链接框架”)。
在创建静态库时有什么方法可以启用这个特性吗?我已经尝试在 Xcode 中启用模块和“自动链接框架”LLVM 选项,但到目前为止还无法使其正常工作。
最佳答案
有一段代码叫做 CBDynamicallyLoadedDependencies
在进行函数或方法调用之前在适当的系统库上调用 dlopen()
。
我原来的回答不正确。 dlopen()
调用仅在 x86 代码中。在设备上,情况有所不同,但我的 ARM 程序集不够强大,无法解决。我只能说有一段代码充当所需功能的蹦床,并引用系统库文件(如/System/Library/Frameworks/AdSupport.framework/AdSupport)。
但关键是,它不是一个简单的项目技巧,可以让它正常工作。涉及内部代码。
关于ios - 静态库使用的框架如何在iOS上自动导入?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23256455/