我有一个静态库,我们用于内部应用程序,包含一些常见的实用程序代码.从以前的SO帖子中,我发现为了在运行时加载静态库中的类别,我需要包含-all_load -ObjC在Build Settings中的Other Linker Flags字段中.
但是,对于我也使用的闭源第三方库,如果我使用这些标志,我会得到几个重复的符号错误.我已经验证我可以通过取出这些标志来构建应用程序,但是当然,在运行时我在使用类别方法时会遇到无法识别的选择器崩溃.
是否有任何方法可以将目标-all_load -ObjC仅应用于我的静态库,不知何故?
谢谢!
尝试创建一个在我公司的iOS应用程序之间共享的实用程序项目.我在之前的工作中完成了这项工作,但这种情况早于Swift.我显然希望将所有实现保留在swift中,而不是Obj-C.
我尝试了cocoapod路线,使用本指南,但在我甚至可以开始在主项目中使用我的实用程序代码之前存在构建问题.
我现在正在尝试使用"可可触摸静态库",其语言为Swift,但仍然没有运气.我将整个.xcodeproj文件导入我的工作区.现在,我只有一个.swift文件,加上由XCode生成的头文件.我的项目刚刚被调用IosUtilsTest.
特别是我的test util文件:
extension UIBarButtonItem {
class func flexible() -> UIBarButtonItem {
return UIBarButtonItem(barButtonSystemItem: .FlexibleSpace, target: nil, action: nil)
}
}
Run Code Online (Sandbox Code Playgroud)
在我的应用程序中:
import IosUtilsTest
....
toolbar.items = [UIBarButtonItem.flexible(), centeredButton, UIBarButtonItem.flexible()]
....
Run Code Online (Sandbox Code Playgroud)
我得到一个flexible不存在的编译器错误.
我试图既包括<IosUtilsTest/IosUtilsTest-swift.h>和<IosUtilsTest/IosUtilsTest.h>我的桥接报头.
基本上它似乎扩展没有包含在构建中.FWIW - 我记得有一个类别需要一个特殊的构建标志的问题,所以我尝试了一个我试图实例化的类,这是相同的基本错误.