-1

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

4

1 回答 1

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

于 2014-10-14T22:42:29.080 回答