iOS9的適配

一、大部分社交平臺接口不支持https協議。

問題描述:在iOS9下,系統默認會攔截對http協議接口的訪問,所以沒法獲取http協議接口的數據。對ShareSDK來講,具體表現多是,沒法受權、分享、獲取用戶信息等。ios

還可能形成咱們的編輯界面裏傳http之類的網絡圖片的時候,咱們的編輯界面不會顯示圖片截圖,解決的辦法或者全面關閉https,容許使用http請求;或者把圖片的域添加;又或者選擇使用https的圖片chrome

解決方案(如下方法2選1):api

(1)、暫時退回到http協議。微信

具體方法:網絡

在項目的info.plist中添加一個Key:NSAppTransportSecurity,類型爲字典類型。app

而後給它添加一個Key:NSAllowsArbitraryLoads,類型爲Boolean類型,值爲YES;dom

751FEFB8-86A2-45EC-8F61-A1A5081C5465

 

(2)、設置域。能夠簡單理解成,把不支持https協議的接口設置成http的接口。iphone

具體方法:測試

1)、在項目的info.plist中添加一個Key:NSAppTransportSecurity,類型爲字典類型。ui

2)、而後給它添加一個NSExceptionDomains,類型爲字典類型;

3)、把須要的支持的域添加給NSExceptionDomains。其中域做爲Key,類型爲字典類型。

4)、每一個域下面須要設置3個屬性:NSIncludesSubdomains、NSExceptionRequiresForwardSecrecy、NSExceptionAllowsInsecureHTTPLoads。

均爲Boolean類型,值分別爲YES、NO、YES。

B4CB0038-520E-4E1A-BDD1-C5AB8627F770

細節提示:在iOS9中若是使用到網絡圖片,也要注意網絡圖片是不是HTTP的哦,若是是,也要把圖片的域設置哦!

各平臺設置域

新浪微博

  • weibo.com
  • weibo.cn
  • sina.com.cn

騰訊微博

  • qq.com

微信

  • qq.com

QQ/QZone

  • qq.com

易信

  • 無需配置

豆瓣

  • 無需配置

人人

  • renren.com

開心網

  • kaixin001.com
  • kaixin001.com.cn

有道

  • youdao.com

Facebook

facebook.com

fbcdn.net

akamaihd.net

Twitter

  • twitter.com

Google+

  • 無需配置

Instagram

  • instagram.com
  • instagramstatic-a.akamaihd.net

Tumblr

  • tumblr.com

Instapaper

  • instapaper.com

Pinterest

  • 無需配置

明道

  • 無需配置

Evernote印象筆記

  • 無需配置

VK

  • 無需配置

pocket

  • 無需配置

LinkedIn

  • 無需配置

Dropbox

  • 無需配置

Flickr

         Kakao

  • 無需配置

kakao.com

二、大部分社交平臺SDK不支持bitcode。

問題描述:iOS 9新建項目默認須要支持bitcode,而不支持bitcode的SDK會致使沒法編譯運行。

解決方案:

(1)、暫時關閉對bitcode的支持(建議),方法以下圖

(2)、移除不支持bitcode的平臺SDK。

3148F4FF-C428-4DF7-81DE-01BCCF44FF63

三、添加Scheme白名單。

問題描述:在iOS 9下涉及到平臺客戶端跳轉,系統會自動到項目info.plist下檢測是否設置平臺Scheme。對於須要配置的平臺,若是沒有配置,就沒法正常跳轉平臺客戶端。所以要支持客戶端的分享和受權等,須要配置Scheme名單。

具體方法:

1)、在項目的info.plist中添加一LSApplicationQueriesSchemes,類型爲Array。

2)、而後給它添加一個須要支持的項目,類型爲字符串類型;

FBEF076A-611A-4B43-B8A9-F1825CC08FDA

各平臺OpenURL白名單說明

新浪微博

  • sinaweibo,
  • sinaweibohd,
  • sinaweibosso,
  • sinaweibohdsso,
  • weibosdk,
  • weibosdk2.5
  • [後兩個若導入新浪SDK則須要]

騰訊微博

  • TencentWeibo,
  • tencentweiboSdkv2
  • [控制檯會提示這兩個,可是騰訊微博SDK已經棄用,能夠忽略不配置]

豆瓣

  • 無需配置

開心網

  • 無需配置

微信

  • wechat,
  • weixin

易信

  • yixin,
  • yixinopenapi

支付寶

  • alipay,
  • alipayshare

QQ

  • mqqOpensdkSSoLogin, 
  • mqqopensdkapiV2,
  • mqqopensdkapiV3,
  • wtloginmqq2,
  • mqq,
  • mqqapi

QZONE

  • mqzoneopensdk, 
  • mqzoneopensdkapi,
  • mqzoneopensdkapi19,
  • mqzoneopensdkapiV2,
  • mqqOpensdkSSoLogin,
  • mqqopensdkapiV2,
  • mqqopensdkapiV3,
  • wtloginmqq2,
  • mqqapi,
  • mqqwpa
  • mqzone,
  • mqq

[:若同時使用QQQZONE,則直接添加本格便可]

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

人人網

  • renrenapi,
  • renrenios,
  • renreniphone,
  • renren,
  • 以及在使用人人SDK時所需配置的URL Scheme,例如:rm226427com.mob.demoShareSDK

Facebook

  • fbauth2

Twitter

  • 無需配置

Pocket

  • pocket-oauth-v1

Pinterest

  • pinit

Instagram

  • instagram

WhatsApp

  • whatsapp

Line

  • line

KakaoTalk

  • kakaolink

KaokaoStory

  • storylink

LinkedIn

  • 無需配置

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.上述白名單,是技術人員經過不斷的測試收集整理所得,若是各位開發者朋友發現上表格有所遺漏,請根據系統信息添加相關白名單便可。

若是沒有設置白名單的話,系統的打印信息如圖所示:

屏幕快照 2015-09-17 下午7.03.30

添加完後,系統是依然會打印的,不過error會變成null:

屏幕快照 2015-09-17 下午7.03.36

相關文章
相關標籤/搜索