iOS做新浪微博sso授權登入遇到的一些坑,iossso
新浪微博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,再自己去新浪調取使用者介面就可以得到使用者資訊了,暱稱、城市、頭像什麼的。。。
結束。