iOS SDK 开发 -- 集成第三方库

作者: YxxxHao | 来源:发表于2016-11-08 17:43 被阅读1019次

在开发SDK的过程中,我们肯定无法避免使用第三方的库,比如 AFNetworking 等常用的库,如果我们直接把第三方的库添加到工程中使用,这样在SDK中是可以正常使用的,但是我们需要考虑到另外一种情况,SDK 是对外提供给其他开发者使用的,我们不可知开发者在开发过程中是否也使用到第三方库,如果开发者和SDK都使用了同一个第方法库,这样工程就会编译不过了,因为有重复的类等问题。

这时,我们就不能直接使用第三方的库了,因为可能会和开发者使用的库冲突,但我们也没有理由去自己开发一套新的库,这种造轮子的效率太低了,我们可以直接修改第三方库的类名,enum 名, 全局变量的名等,为它们加一个独特的前缀,使它们与原本的库文件同时存在的时候不会冲突就可以了。

这里主要提及下需要添加前缀的情况,以 AFNetworking 为例子:

1.全局变量:

D1213487-8F10-4CDE-B16A-0FA417173993.png

2.protocol

B095F365-B89C-4587-9246-E1513083AA7B.png

3.类名

6D243285-0E05-4169-881C-C2CCA554DF24.png

这里就不一一列举,最简单的方法是在把类名和文件名全部加上前缀后,再把原来的第三方库重新导入,然后再 build 下, 所有有冲突的地方都是提示出来,只需要根据提示一个个来改就可以了,这是一个不断复制粘贴的工作,让人很烦躁的事情,不知道有没有朋友知道有更好的方式可以分享下,感谢感谢啊。

这篇简短的文章写得真的太过于简短,主要是为了在这里卖个广告,我创建了一个 iOS SDK 开发的qq群,群号:127548419,有兴趣的就加下。

相关文章

网友评论

  • Ashen:博主你好,为什么我这边sdk中对引入的第三方库什么都不做,也不会和项目中的同样的第三方库冲突呢
  • AKyS佐毅:博主可以使用这种方式解决问题,避免手动修改的尴尬。
  • AKyS佐毅:platform :ios, '8.0'
    workspace 'FangKeDemo.xcworkspace'

    abstract_target 'FangKeDemo' do
    pod 'SDWebImage', '3.8.2'
    pod 'Toast', '~> 3.0'
    pod 'SVProgressHUD', '~> 2.0.3'
    pod 'M80AttributedLabel', '~> 1.5.0'
    pod 'TZImagePickerController', '~> 1.7.7'

    target 'FangKe' do
    project 'FangKe.xcodeproj'
    pod 'FMDB', '~> 2.5'
    pod 'Reachability', '~> 3.1.1'
    pod 'CocoaLumberjack', '~> 2.0.0-rc2'
    pod 'SSZipArchive', '~> 1.2'
    end

    target 'Interface' do
    project '../Interface/Interface.xcodeproj'
    end
    end
  • Fergus_No1:如果别人存在。就用头文件。然后去引用就好了。
    YxxxHao:@fang川 如果别人用的版本和你的不一致,这样就有可以会出现问题了,而且sdk的目的是提供最便捷的服务,最好是开发者直接加到工程就可以使用了,而不用再处理什么。
  • 11eddd582230:这样改起来也太麻烦了吧,还很容易出错
    YxxxHao:@macfai 目前没有很好的方式来处理这问题,如果 你有更好的可以介绍下
    macfai:就是,楼主的方法是可以,就是稍微感觉有点麻烦,有没有稍微简洁点的方法呢:smile:
    YxxxHao:@IOS书童 这是一个比较“傻瓜式”的做法,如果你有更好的方法可以分享下,让我们来学习下
  • 有梦想的咸鱼宁:如果你想集成的第三方里还有第三方要怎么办
    YxxxHao:@Rookie_ning 开源的第三方如果依赖于另一个第三方,你是需要手动添加进来的,如果是sdk的话,也是需要去改名, 比如我用七牛的sdk,七牛依赖弄 AFNetworking,这样的话,在sdk里面两个都要修改,并把七牛中使用到afnetworking的方法改为 改名后的方法

本文标题:iOS SDK 开发 -- 集成第三方库

本文链接:https://www.haomeiwen.com/subject/adaauttx.html