Closed baxsad closed 7 years ago
我也遇到这个问题了,我们的网络层是针对AF3.0做的封装,但是Social是依赖2.0的,有点难搞。我目前把AF3.0文件名都给改了一遍暂时替代一下。
我们考虑去掉网络库依赖。
刚刚尝试用pod package的方式,这样子就会避免引用冲突的问题,突然发现依赖中有ibAVOSCloud.a,不能通过验证。= =、
@zymxxx 旧版本的 AVOSCloud
是通过静态库的方式发布的,可能 CocoaPods 不允许这种情况。可以将 LeanCloudSocial.podspec 中的 AVOSCloud
版本号指定为 3.4.0-beta
尝试一下,新版是通过源码集成的。
另外,pod package 如何避免引用冲突呢?Xcode 在链接过程中不会发现错误吗?
cocoapods-packager
有一个好处是对依赖的第三方库进行重命名以解决库类命名冲突的问题。
@zymxxx 感谢提供信息。
@tang3w 刚刚看了下AVOSCloud的源码,typedef AVHTTPClient AFHTTPClient;
也是一种解决方式,get到了。
另外,这两天我研究了LeanCloud开放的相关Demo,发现贵团队在pods template的使用上有很多巧妙之处,学到了很多东西,表示感谢。 最后,LeanCloud团队是否有一些公开的SDK开发资料,外链,可以提供学习下吗?
你好,很高兴能帮到你。很遗憾暂时还没有相关资料。欢迎鉴定源码。
另外,我尝试了 pod package 还有些问题。一方面是 non-static 符号无法做 name mangling,另一方面无法生成 dependencies 的 public header。
我们稍后会提供一个临时的 framework。
@tang3w 是的,我将AVOSCloud
版本号指定为3.4.0-beta
进行package的时候也遇到了non-static符号无法做name managing,对于无法生成dependencies的public header的问题,应该看具体需求吧,我这边暂时不需要(不排除以后需要的可能)。目前来看,贵团队的这种做法应该算是比较全面和可行性高的。继续研究ing
谢谢。
做了一个临时版本,解决了 AFNetworking 的依赖冲突。可以这样指定临时版本:
pod 'LeanCloudSocial', :podspec => 'https://dn-lhzo7z96.qbox.me/1469179619802'
1.0.0-beta 已经发布,相关PR见:https://github.com/leancloud/leancloud-social-ios/pull/53
AFNetworking (~> 3.0.4)
required byPodfile
AFNetworking (~> 2.0)
required byLeanCloudSocial (0.0.8)