使用cocoaPods一键集成第三方登录(新浪微博,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,体力活好累人呀。。。看文档也是个体力活。。。

时间: 2024-10-08 09:43:55

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

iOS:shareSDK 第三方登录(qq 微信)

配置文件: (配置文件或者plist中) TARGETS ->Info ->URL Type qq需要: tencentopenapi    "tencent"+QQApp_id "QQ" + QQApp_id(16进制,字母要大写) 微信:  App_id plist文件中: URL types 一般在AppDelegate里面写: #import <ShareSDK/ShareSDK.h> #import <TencentOpenA

无处不在,详解iOS集成第三方登录(SSO授权登录&lt;无需密码&gt;)

1.前言 不多说,第三登录无处不在!必备技能,今天以新浪微博为例. 这是上次写的iOS第三方社交分享:http://www.cnblogs.com/qingche/p/3727559.html 可以和今天的一起集成使用. 2.集成前的准备工作 2.1.去ShareSDK(现为Mob)注册帐号,下载SDK,然后添加自己的应用后得到AppKey 下载地址:http://sharesdk.cn/Download 2.2.申请第三方登录的Appkey 例如: 新浪微博.腾讯微博.QQ.微信.豆瓣应用.人

iOS- 无处不在,详解iOS集成第三方登录(SSO授权登录&lt;无需密码&gt;)

1.前言 不多说,第三登录无处不在!必备技能,今天以新浪微博为例. 这是上次写的iOS第三方社交分享:http://www.cnblogs.com/qingche/p/3727559.html 可以和今天的一起集成使用. 2.集成前的准备工作 2.1.去ShareSDK(现为Mob)注册帐号,下载SDK,然后添加自己的应用后得到AppKey 下载地址:http://sharesdk.cn/Download 2.2.申请第三方登录的Appkey 例如: 新浪微博.腾讯微博.QQ.微信.豆瓣应用.人

第三方登录之QQ登录(二)——OAuth2.0处理流程介绍(以QQ登录为例)

为了让网站更快接入,腾讯提供了JS SDK的接入方案,具体点击这里或者点击这里进行查看. 不过也可以自己写代码,当然你需要了解QQ的OAuth2.0的处理流程(Web Server Flow). OAuth2.0的处理流程:点击这里查看官方Wiki. 1.授权:获取授权码Authorization Code 说明:第一步QQ必须得到要登录系统的授权信息,如果授权全成功,则会跳转到回调地址,同时授权码以参数形式,追加回调地址上. 当然还有一些其他参数,具体详情看官方介绍. 实例: https://

iOS平台软件开发工具(一)-新建的工程使用CocoaPods工具集成第三方框架

CocoaPods是一款集合了上千个第三方开源库的开发工具,能够大幅度的提升团队项目的开发效率,降低时间成本. 那么就看一下CocoaPods这个工具在项目中的使用体现吧. 我们马上用ASIHTTPRequest第三方开源框架,说明如何在我们的项目中使用CocoaPods工具快速集成第三方开源框架. 首先,创建一个iOS平台下的空应用程序工程EmptySample. 然后,在终端中进入新建的工程目录,如图所示 结果如图所示. 在新建的工程根目录下,使用vi命令新建Podfile文件.(注意,不用

iOS无处不在详解iOS集成第三方登录(SSO授权登录无需密码)

链接地址:http://www.it165.net/pro/html/201408/18884.html 1.前言 不多说,第三登录无处不在!必备技能,今天以新浪微博为例. 这是上次写的iOS第三方社交分享:http://www.cnblogs.com/qingche/p/3727559.html 可以和今天的一起集成使用. 2.集成前的准备工作 2.1.去ShareSDK(现为Mob)注册帐号,下载SDK,然后添加自己的应用后得到AppKey 下载地址:http://sharesdk.cn/D

集成微信第三方登录功能获取微信用户信息

最近公司要做微信的第三方登录,本来打算直接用第三方的框架就算了,就闲的想自己集成试试看. 然后发现被腾讯坑得不省人事. 前提,应用必须要在微信开发平台上注册,并且通过审核,有微信登录的权限. 首先,下载官方的demo.把libs的jar包拷到自己的工程里. 在应用的包名下,建一个wxapi的包目录,在里建一个叫WXEntryActivity的activity并实现IWXAPIEventHandler监听,用于微信回调数据! 下面是我自己的WXEntryActivity,OnUserInfoLis

集成第三方登录遇到的几个问题及解决办法

{"msg":"the user modify password wrong","ret":-73} 最近集成shareSDK的第三方登录,登录的时候第一次会授权获得用户资料,之后就是每次登录就不会再次授权了.第三方登录的时候最好都要调取授权界面再登录,因为如果用户更改了qq 微信的密码之后,登录就会返回失败. 下面以ShareSDK的qq登录示例以下 final Platform qqchat = ShareSDK.getPlatform(co

第三方登录接入-qq,weibo-java

开发之前 需求:网站接入qq,sina微博登录,本文最后付效果图: 说明:大部分网站本身是需要用户概念的,很多操作依附于用户,而qq或微博作为一种登录方式指向用户而已,我参考了一下其他网站的做法, 一般有如下两种做法: 1,强制绑定:用户第一次通过qq登录时必须与该网站账户绑定,也就是用户必须要先有一个此网站账户才能登录成功 2,互相独立,用户第一次通过qq登录时直接重新为用户注册一个账户,如以用户名为qq_123456直接注册一个账户,与其他账户无关: 站在用户角度考虑下,可能需要更多的选择性