objective-c – 构建使用Cocapods的可分发静态库
我正在构建一个静态库来分发给其他iOS开发人员,并且在配置链接器时遇到一些麻烦,以便在另一个应用程序中使用静态库。我使用
this guide创建一个包含lib本身的MyStaticLibrary.framework包,以及其他资源(如图像)。这样可以成功构建并使用Cocapods来提供所需的依赖关系(AFNetworking等)。到现在为止还挺好。
但是当我将MyStaticLibrary.framework导入一个新的Xcode项目以测试使用库构建应用程序时,我会收到大量的链接器错误(架构i386的未定义符号_OBJC_CLASS _ $ _ CLASSNAME),表示我在这里做错了。 所以我的问题是,如何使用来自Cocapods的依赖项构建MyStaticLibrary.framework,以便我可以为第三方提供我的框架文件,并允许他们访问公共头文件中指定的所有函数? 解决方法
您使用CocoaPods包含的任何库在默认情况下都不会被编译到框架中 – 它们的外部依赖关系不属于实际产品。但是,根据他们的FAQ,他们支持一种模式,您可以在其中下载pod,而不是将它们链接到您的项目。从他们的FAQ:
要在编译的二进制文件中包含外部依赖项: >对于代码:代替使用Cocapods,请查看您要包含的存储库并将源文件复制到项目中 – 这将确保它们与您的其余代码一起编译 注意以这种方式捆绑第三方库时,您会遇到与整合框架的项目冲突的风险。例如,假设您正在使用一个名为SOSomeView的lib,您可以选择在框架中编译它。现在,如果您正在集成的应用程序还包括SOSomeView,您将收到类声明两次的编译时错误。要解决这个问题,您应该将要硬编码的任何外部依赖项重命名为框架(即将类重命名为XXSOSomeView)。 如果您正在使用框架编译静态库,我不知道如何解决这个问题。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |