名称空间与AFNetworking框架常量冲突

时间:2014-09-15 21:46:18

标签: objective-c namespaces name-collision

如果我的静态库使用AFNetworking并且客户端项目也在使用它,则AFNetworking中定义的常量似乎会发生冲突,从而导致客户端项目无法构建(重复符号错误)。这样的事情通常如何解决?框架创建者应该做些什么来避免这种情况?

1 个答案:

答案 0 :(得分:0)

尝试此链接中的方法:

http://blog.sigmapoint.pl/avoiding-dependency-collisions-in-ios-static-library-managed-by-cocoapods/

他描述为:

  

使用带前缀符号构建库 - 在我看来是最好的方法。我们   想在最终的.a文件中为所有符号添加前缀   例如AFHTTPSessionManager成为   SIGMAPOINT_AFHTTPSessionManager。您的依赖版本不是   连接到开发人员使用的版本,不会发生冲突。该   唯一的缺点是更大的输出文件,因为当有人使用   相同的库最终文件将包含相同的符号:一次   前缀,一旦没有前缀。但整个构建过程将起作用   顺利无误。这是我们将要研究的解决方案   在本文中进一步。

此工具可能有所帮助

https://github.com/cocoapods/cocoapods-packager