ShareSDK 各平臺配置
1、大部分社交平臺介面不支援https協議。
問題描述:在iOS9下,系統預設會攔截對http協議介面的訪問,因此無法獲取http協議介面的資料。對ShareSDK來說,具體表現可能是,無法授權、分享、獲取使用者資訊等。
還可能造成我們的編輯介面裡傳http之類的網路圖片的時候,我們的編輯介面不會顯示圖片截圖,解決的辦法或者全面關閉https,允許使用http請求;或者把圖片的域新增;又或者選擇使用https的圖片
解決方案:
(1)、暫時退回到http協議。
具體方法:
在專案的info.plist中新增一個Key:NSAppTransportSecurity,型別為字典型別。
然後給它新增一個Key:NSAllowsArbitraryLoads,型別為Boolean型別,值為YES;
(2)、設定域。可以簡單理解成,把不支援https協議的介面設定成http的介面。
具體方法:
1)、在專案的info.plist中新增一個Key:NSAppTransportSecurity,型別為字典型別。
2)、然後給它新增一個NSExceptionDomains,型別為字典型別;
3)、把需要的支援的域新增給NSExceptionDomains。其中域作為Key,型別為字典型別。
4)、每個域下面需要設定3個屬性:NSIncludesSubdomains、NSExceptionRequiresForwardSecrecy、NSExceptionAllowsInsecureHTTPLoads。
均為Boolean型別,值分別為YES、NO、YES。
細節提示:在iOS9中如果使用到網路圖片,也要注意網路圖片是否是HTTP的哦,如果是,也要把圖片的域設定哦!
各平臺設定域 |
|||
新浪微博 |
|
||
騰訊微博 |
|
||
|
|||
QQ/QZone |
|
||
易信 |
|
||
豆瓣 |
|
||
人人 |
|
||
開心網 |
|
||
有道 |
|
||
|
facebook.com |
fbcdn.NET |
akamaihd.Net |
|
|
||
Google+ |
|
||
|
|
||
Tumblr |
|
||
Instapaper |
|
||
|
|
||
明道 |
|
||
Evernote印象筆記 |
|
||
VK |
|
||
|
|
||
|
|
||
Dropbox |
|
||
Flickr |
|
2、大部分社交平臺SDK不支援bitcode。
問題描述:iOS 9新建專案預設需要支援bitcode,而不支援bitcode的SDK會導致無法編譯執行。
解決方案:
(1)、暫時關閉對bitcode的支援(建議),方法如下圖
(2)、移除不支援bitcode的平臺SDK。
3、新增Scheme白名單。
問題描述:在iOS 9下涉及到平臺客戶端跳轉,系統會自動到專案info.plist下檢測是否設定平臺Scheme。對於需要配置的平臺,如果沒有配置,就無法正常跳轉平臺客戶端。因此要支援客戶端的分享和授權等,需要配置Scheme名單。
具體方法:
1)、在專案的info.plist中新增一LSApplicationQueriesSchemes,型別為Array。
2)、然後給它新增一個需要支援的專案,型別為字串型別;
各平臺OpenURL白名單說明 |
|||
新浪微博 |
|
||
騰訊微博 |
|
||
豆瓣 |
|
||
開心網 |
|
||
微信 |
|
||
易信 |
|
||
支付寶 |
|
||
|
|
||
QZONE |
[注:若同時使用QQ和QZONE,則直接新增本格即可] |
||
Google+ |
|
||
人人網 |
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
Line |
|
||
KakaoTalk |
|
||
KaokaoStory |
|
||
|
|
||
Tumblr |
|
||
非平臺類,如簡訊,複製,郵件等 |
|
||
必看注意: | |||
1.在iOS9中,如果沒有新增上述白名單,系統會列印類似如下提示:
.-canOpenURL: failed for URL: “sinaweibohdsso://xxx” – error: “This app is not allowed to query for scheme sinaweibohdsso”(如下圖) 如沒有新增相關白名單,有可能導致分享失敗,例如不會跳轉微信,不會跳轉QQ等。 |
|||
2.新增完上述所需的名單,系統依然會列印類似資訊:
.-canOpenURL: failed for URL: “sinaweibohdsso://xxx” – error: “null” 這是系統列印的資訊,目前是無法阻止其列印,即無法消除的 |
|||
3.上述白名單,是技術人員通過不斷的測試收集整理所得,如果各位開發者朋友發現上表格有所遺漏,請根據系統資訊新增相關白名單即可。 |
如果沒有設定白名單的話,系統的列印資訊如圖所示:
新增完後,系統是依然會列印的,不過error會變成null:
4、其他:
在iOS9下,新浪微博SDK裡面使用的JSONKit在部分機型可能導致崩潰。崩潰資訊如下圖。
解決:暫時移除新浪微博SDK,等待新浪微博SDK的更新。
影響:移除新浪微博SDK後,除了依賴SDK實現的跳到客戶端的分享和關注官網微博等失效。其他主要功能如分享、SSO、獲取使用者資料等不受影響。