使用cocoaPods一键集成第三方登录(新浪微博,qq,微信)_移动开发_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > 移动开发 > 使用cocoaPods一键集成第三方登录(新浪微博,qq,微信)

使用cocoaPods一键集成第三方登录(新浪微博,qq,微信)

 2015/5/15 11:16:20  Phelthas  程序员俱乐部  我要评论(0)
  • 摘要:第三方登录是现在app很常用的功能,而这个功能我已经写过两三次了。。。每次都写大同小异的代码真的是很痛苦,而且每次都要根据说明去添加那些依赖库,配置linkFlag什么的,完全是体力活,所以一直想把这部分代码封装一下,方便以后复用。然后受DWZShareKit的启发,想到可以用cocoaPods来添加依赖库,完成配置,所以赶紧把之前的想法付诸行动,写了个集成第三方登录的库。地址在这里:https://github
  • 标签:使用 新浪 新浪微博 微博 QQ

第三方登录是现在app很常用的功能,而这个功能我已经写过两三次了。。。每次都写大同小异的代码真的是很痛苦,而且每次都要根据说明去添加那些依赖库,配置linkFlag什么的,完全是体力活,所以一直想把这部分代码封装一下,方便以后复用。 然后受DWZShareKit的启发,想到可以用cocoaPods来添加依赖库,完成配置,所以赶紧把之前的想法付诸行动,写了个集成第三方登录的库。 地址在这里:https://github.com/Phelthas/LXMThirdLoginManager 具体如何使用及注意事项我已经写在工程的readme里面了,这里来说点其他的。 (说一键集成是夸张的修辞手法啦,申请appKey填写scheme什么的工作还是少不了的啦~)   一,思路 CocoaPods如何完成配置,如何工作的咱还没搞懂,所以只能说说我这里是怎么使用的 问题的关键就在 LXMThirdLoginManager.podspec 这个文件中, .podspec  中有一些描述用的代码 s.libraries  表示这个pod依赖的 苹果官方的库,也就是类似libstdc++.a ,libsqlite.a 等等的a文件; s.vendored_libraries 就表示用户自己的a文件,比如新浪微博SDK的libWeiboSDK.a ; s.frameworks 表示pod依赖的 苹果的framework, 比如 UIKit,SystemConfiguration等等 s.vendored_frameworks, 表示pod依赖的自己的framework,比如qqSDK的TencentOpenAPI.framework; (其他的就不一一列举了,具体的看CocoaPods的官网:https://cocoapods.org/about) (另外一个貌似是文档的参考地址:http://www.rubydoc.info/github/CocoaPods/Core/Pod/Specification/DSL) 利用这些,把第三方登录SDK所依赖的文件全部加入这个pod中,那CocoaPods在加载这个pod的时候,就会顺便把第三方登录所依赖的库一起加载进去了。这样就不用我们每个工程都配置一次了~~~ CocoaPods会自动加入-ObjC的linkerFlag,这是方便呀~~   不过这样也有坏处: 1是各个SDK更新之后这里不会第一时间知道,也就没办法第一时间更新; 2是因为把各个SDK的文件都包含到了这个pod中,导致这个pod文件很大(大概6M),install的时候会比较耗时间,尤其是网速不给力的话,可能会pod不下来。。。 3是提供的方法比较单一,如果要其他功能还需要自己开发   但是这个库最大的目的是省我们配置的时间呀!!!想到这里我对它还是比较满意的。     二,代码实现 就代码的实现来说,这里是想应用下类似工程模式的设计模式,不知道用的对不对。。。 反正就是:   用一个统一的管理器(LXMThirdLoginManager)作为外部调用的统一入口, 内部为各个登录类型分别写一个helper类(这些类提供统一的调用接口),完成各自的登录逻辑, 再统一回调manager的方法返回结果(统一的result类)。   这样外部调用起来就很简单了,而且如果需要扩展的话,只需要新加一个登录类型和一个helper类,完全不影响其他类型的使用。 再具体的就看代码吧,这个东西还是至少要自己实现一边才能弄明白的。   三,吐槽 1,新浪微博必须得工程的bundleID和在其开发平台注册的bundleID一致才能登陆。。。新写个demo还得改下bundleID好麻烦。。。 2,微信创建的移动应用居然要资格认证过了才有登陆权限,认证一下300块还只管用一年,完全不让自己注册个玩啊。。。。 3,qq资格认证居然还要上传身份证照片,要身份证就算了吧还要正反面都要。。。 4,qq貌似得在info.plist文件中添加bundleDisplayName,我没写貌似也没事。。。这是文档太久了? 5,demo里没有可用的appKey和appSecret什么的真不能怪我呀,自己的不能用又不能泄露公司的。。。 6,体力活好累人呀。。。看文档也是个体力活。。。      
发表评论
用户名: 匿名