你的位置:首页 > 操作系统

[操作系统]iOS做新浪微博sso授权登录遇到的一些坑


 

新浪微博sso授权第三方登录,这里没有借助第三方框架,如shareSKD和友盟等,直接参考新浪官方SDK和文档。

 

过程中遇到几个坑,找了很久,好歹最后解决了,记录如下

问题1:

_NSInlineData base64EncodedString - unrecognized selector sent to instance 报错

这个坑编译是看不出来的,可以通过,运行时,直接闪退了,蹦~

解答:

这里我之前也试过第三方框架做新浪授权登录,也会遇到此问题,所以这个还是新浪自己SDK的坑,与第三方框架无关。

最后解决:在build settings ->other linker flags  ->添加-all_load

吐槽下,官方文档上,让家-objc,没卵用啊。。。

这里要注意下,如果还不行,最好严格按照官方文档把相应framework加全了,具体参考《微博iOS平台SDK文档V3.1.4》,https://github.com/sinaweibosdk/weibo_ios_sdk。

 

问题2:

好了,这个坑纠结很久,终于可以运行了,打开都正常,点击新浪登录,理论上直接弹出提示:应用想打开微博,下面可以选取取消、确定

但实际上是跳刀了网页登录,并没有sso打开微博APP,并且打印一大堆日志,错误如下:

-canOpenURL: failed for URL: "sinaweibo" - error:"This app is not allowed to query for scheme xx

-canOpenURL: failed for URL: "weibosdk" - error:"This app is not allowed to query for scheme xx

总共好几行,解决办法是:在info.plist里添加一个属性:LSApplicationQueriesSchemes,并设置内容

添加完,就可以正常授权了。

 

授权后回得到uid和accessToken,再自己去新浪调取用户接口就可以得到用户信息了,昵称、城市、头像什么的。。。

 

 

结束。