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

摘要:
第三方登录是现在app很常用的功能,而这个功能我已经写过两三次了。。。然后受DWZShareKit的启发,想到可以用cocoaPods来添加依赖库,完成配置,所以赶紧把之前的想法付诸行动,写了个集成第三方登录的库。3,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,体力活好累人呀。。。看文档也是个体力活。。。

免责声明:文章转载自《使用cocoaPods一键集成第三方登录(新浪微博,qq,微信)》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Vue取消eslint语法限制springboot集成activeMq下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

iOS开发常用的10个Xcode插件

原文连接:http://ios.jobbole.com/80697/ 1. XcodeColors:给 Xcode 控制台添加颜色 2. XToDo:这个插件不仅高亮 TODO、 FIXME、 ???,还高亮 !!!  注释 3. Backlight:高亮当前正在编辑的那一行 4. CocoaPods 插件:依赖管理助手 5. ACCodeSnippet...

ios cocoapods获取不到最新库的原因主要有两个:

获取不到最新库的原因主要有两个: 1.cocoapods的版本过低2.还没有更新本地仓库 解决方法:1.更新pods 在终端执行命令行 sudo gem install cocoapods 执行完后会打印一大堆东西,不用管它,等它打印完就行了 然后再执行 pod –version 查看下pods的版本博主目前更新的最新版本是1.2.0.beta.1 执行...

使用cocoaPods加载框架的具体步骤:

注意事项: 1.使用之前备份一下代码.因为pod更新很快,如果某个文件名有中文,podinstall一下.整个项目可能就要废掉了. 2.如果不把pod文件推动到远程服务器. 每一次用的时候在本地podupdate一下.坏处是:如果程序回到原来的版本.但是pod下的第三方框架还是最新的.可能会报错. 整体流程: 准备步骤:1.需要下载安装CocoaPods...

mac cocoapod安装过程

cocoapod: 自动化管理第三方开发包的一个插件, 废话不多说, 一个新手只需做如下几个步骤 1-> 安装ruby环境(可忽略, 不是必要)  1.1 首先我们先看看当前你机器上ruby的版本 ruby -v ruby 2.4.0p0 (2016-12-24 revision 57164) [x86_64-darwin16] 1.2 接下来我们来...

iOS开发:cocoapods的使用

Cocoapods是OS X和iOS下的一个第三方类库管理工具,通过CocoaPods工具我们可以为项目添加各种依赖库,减少了我们手动引入库需要的各种配置,同时使用cocoapods可以方便的查找新的第三方库,这些库都比较标准。 cocoaPods的核心组件: CocoaPods是用Ruby写的,并划分成了若干个Gem包。 cocoapods在解析执行过程...

mac10.12的Cocopods安装使用

Cocopods的安装 CocoaPods应该是iOS最常用最有名的类库管理当我们开发iOS应用时,会经常使用到很多第三方开源类库,比如AFNetWorking等等,可能某个类库又用到其他的库,手动一个个去下载所需类库十分麻烦。如果我们项目中用到的类库有更新,还要重新下载新版本,重新加入到项目中,十分麻烦。所以,我们需要 CocoaPods帮我们管理。如何...