1昨悼、大部分社交平臺(tái)接口不支持https協(xié)議。
問(wèn)題描述:在iOS9下妓灌,系統(tǒng)默認(rèn)會(huì)攔截對(duì)http協(xié)議接口的訪問(wèn)轨蛤,因此無(wú)法獲取http協(xié)議接口的數(shù)據(jù)。對(duì)ShareSDK來(lái)說(shuō)虫埂,具體表現(xiàn)可能是俱萍,無(wú)法授權(quán)、分享告丢、獲取用戶信息等。
還可能造成我們的編輯界面里傳http之類的網(wǎng)絡(luò)圖片的時(shí)候,我們的編輯界面不會(huì)顯示圖片截圖岖免,解決的辦法或者全面關(guān)閉https,允許使用http請(qǐng)求岳颇;或者把圖片的域添加;又或者選擇使用https的圖片
解決方案:
(1)颅湘、暫時(shí)退回到http協(xié)議话侧。
具體方法:
在項(xiàng)目的info.plist中添加一個(gè)Key:NSAppTransportSecurity,類型為字典類型闯参。
然后給它添加一個(gè)Key:NSAllowsArbitraryLoads瞻鹏,類型為Boolean類型,值為YES鹿寨;
(2)新博、設(shè)置域〗挪荩可以簡(jiǎn)單理解成赫悄,把不支持https協(xié)議的接口設(shè)置成http的接口。
具體方法:
1)馏慨、在項(xiàng)目的info.plist中添加一個(gè)Key:NSAppTransportSecurity埂淮,類型為字典類型。
2)写隶、然后給它添加一個(gè)NSExceptionDomains倔撞,類型為字典類型;
3)慕趴、把需要的支持的域添加給NSExceptionDomains痪蝇。其中域作為Key,類型為字典類型秩贰。
4)霹俺、每個(gè)域下面需要設(shè)置3個(gè)屬性:NSIncludesSubdomains、NSExceptionRequiresForwardSecrecy毒费、NSExceptionAllowsInsecureHTTPLoads丙唧。
均為Boolean類型,值分別為YES觅玻、NO想际、YES。
細(xì)節(jié)提示:在iOS9中如果使用到網(wǎng)絡(luò)圖片溪厘,也要注意網(wǎng)絡(luò)圖片是否是HTTP的哦胡本,如果是,也要把圖片的域設(shè)置哦畸悬!
各平臺(tái)設(shè)置域
新浪微博
weibo.com
weibo.cn
sina.com.cn
騰訊微博
qq.com
微信
qq.com
QQ/QZone
qq.com
易信
無(wú)需配置
豆瓣
無(wú)需配置
人人
renren.com
開(kāi)心網(wǎng)
kaixin001.com
kaixin001.com.cn
有道
youdao.com
facebook.com
fbcdn.net
akamaihd.net
twitter.com
Google+
無(wú)需配置
instagram.com
instagramstatic-a.akamaihd.net
Tumblr
tumblr.com
Instapaper
instapaper.com
無(wú)需配置
明道
無(wú)需配置
Evernote印象筆記
無(wú)需配置
VK
無(wú)需配置
無(wú)需配置
無(wú)需配置
Dropbox
無(wú)需配置
Flickr
無(wú)需配置
2侧甫、大部分社交平臺(tái)SDK不支持bitcode。
問(wèn)題描述:iOS 9新建項(xiàng)目默認(rèn)需要支持bitcode,而不支持bitcode的SDK會(huì)導(dǎo)致無(wú)法編譯運(yùn)行披粟。
解決方案:
(1)咒锻、暫時(shí)關(guān)閉對(duì)bitcode的支持(建議),方法如下圖
(2)守屉、移除不支持bitcode的平臺(tái)SDK惑艇。
問(wèn)題描述:在iOS 9下涉及到平臺(tái)客戶端跳轉(zhuǎn)滨巴,系統(tǒng)會(huì)自動(dòng)到項(xiàng)目info.plist下檢測(cè)是否設(shè)置平臺(tái)Scheme。對(duì)于需要配置的平臺(tái)俺叭,如果沒(méi)有配置恭取,就無(wú)法正常跳轉(zhuǎn)平臺(tái)客戶端。因此要支持客戶端的分享和授權(quán)等绪颖,需要配置Scheme名單秽荤。
1)、在項(xiàng)目的info.plist中添加一LSApplicationQueriesSchemes柠横,類型為Array窃款。
2)、然后給它添加一個(gè)需要支持的項(xiàng)目牍氛,類型為字符串類型晨继;
各平臺(tái)OpenURL白名單說(shuō)明
新浪微博
sinaweibo,
sinaweibohd,
sinaweibosso,
sinaweibohdsso,
weibosdk,
weibosdk2.5
[后兩個(gè)若導(dǎo)入新浪SDK則需要]
騰訊微博
TencentWeibo,
tencentweiboSdkv2
[控制臺(tái)會(huì)提示這兩個(gè),但是騰訊微博SDK已經(jīng)棄用,可以忽略不配置]
豆瓣
無(wú)需配置
開(kāi)心網(wǎng)
無(wú)需配置
微信
wechat,
weixin
易信
yixin,
yixinopenapi
支付寶
alipay,
alipayshare
mqqOpensdkSSoLogin,
mqqopensdkapiV2,
mqqopensdkapiV3,
wtloginmqq2,
mqq,
mqqapi
QZONE
mqzoneopensdk,
mqzoneopensdkapi,
mqzoneopensdkapi19,
mqzoneopensdkapiV2,
mqqOpensdkSSoLogin,
mqqopensdkapiV2,
mqqopensdkapiV3,
wtloginmqq2,
mqqapi,
mqqwpa搬俊,
mqzone紊扬,
mqq
[注:若同時(shí)使用QQ和QZONE,則直接添加本格即可]
Google+
googlechrome,
googlechrome-x-callback,
hasgplus4,
com.google.gppconsent,
com.google.gppconsent.2.2.0,
com.google.gppconsent.2.3.0,
com.google.gppconsent.2.4.0,
com.google.gppconsent.2.4.1
人人網(wǎng)
renrenapi,
renrenios,
renreniphone,
renren,
以及在使用人人SDK時(shí)所需配置的URL Scheme,例如:rm226427com.mob.demoShareSDK
fbauth2
無(wú)需配置
pocket-oauth-v1
pinit
Line
line
KakaoTalk
kakaolink
KaokaoStory
storylink
無(wú)需配置
Tumblr
無(wú)需配置
非平臺(tái)類,如短信唉擂,復(fù)制餐屎,郵件等
無(wú)需配置
必看注意:
1.在iOS9中,如果沒(méi)有添加上述白名單玩祟,系統(tǒng)會(huì)打印類似如下提示:
.-canOpenURL: failed for URL: “sinaweibohdsso://xxx” – error: “This app is not allowed to query for scheme sinaweibohdsso”(如下圖)
如沒(méi)有添加相關(guān)白名單腹缩,有可能導(dǎo)致分享失敗,例如不會(huì)跳轉(zhuǎn)微信空扎,不會(huì)跳轉(zhuǎn)QQ等藏鹊。
2.添加完上述所需的名單,系統(tǒng)依然會(huì)打印類似信息:
.-canOpenURL: failed for URL: “sinaweibohdsso://xxx” – error: “null”
這是系統(tǒng)打印的信息,目前是無(wú)法阻止其打印转锈,即無(wú)法消除的
3.上述白名單盘寡,是技術(shù)人員通過(guò)不斷的測(cè)試收集整理所得,如果各位開(kāi)發(fā)者朋友發(fā)現(xiàn)上表格有所遺漏撮慨,請(qǐng)根據(jù)系統(tǒng)信息添加相關(guān)白名單即可竿痰。
如果沒(méi)有設(shè)置白名單的話脆粥,系統(tǒng)的打印信息如圖所示:
添加完后,系統(tǒng)是依然會(huì)打印的菇曲,不過(guò)error會(huì)變成null:
在iOS9下,新浪微博SDK里面使用的JSONKit在部分機(jī)型可能導(dǎo)致崩潰常潮。崩潰信息如下圖。
解決:暫時(shí)移除新浪微博SDK楷力,等待新浪微博SDK的更新喊式。
影響:移除新浪微博SDK后,除了依賴SDK實(shí)現(xiàn)的跳到客戶端的分享和關(guān)注官網(wǎng)微博等失效萧朝。其他主要功能如分享岔留、SSO、獲取用戶資料等不受影響检柬。
5.關(guān)于lib庫(kù)文件
Update your library with bit code, or you'll get warnings like:
(null): URGENT: all bitcode will be dropped because'/Users/myname/Library/MobileDocuments/com~apple~CloudDocs/foldername/appname/GoogleMobileAds.framework/GoogleMobileAds(GADSlot+AdEvents.o)'was built without bitcode. You must rebuild it with bitcode enabled(Xcode setting ENABLE_BITCODE), obtain an updated library from thevendor, or disable bitcode for this target. Note: This will be anerror in the future.
Say NO to Enable Bitcode in your target Build Settings