1. 程式人生 > >iOS 適配iOS9

iOS 適配iOS9

allow 退回 log sub logs 分享 授權 版本 網絡

1、網絡接口不支持https協議,在iOS9下

 在iOS9下,系統默認會攔截對http協議接口的訪問,因此無法獲取http協議接口的數據。

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

(1)暫時退回到http協議

具體方法:

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

然後給它添加一個Key:NSAllowsArbitraryLoads,類型為Boolean類型,值為YES;

技術分享

2016.01.06更新:

隨著SDK版本的更新,這裏需要以下更新。

具體方法:

在項目的info.plist中添加一個Key:App Transport Security Settings,類型為字典類型。

然後給它添加一個Key:Allow Arbitrary Loads,類型為Boolean類型,值為YES;

如圖:

技術分享

(2)設置域。

可以簡單理解成,把不支持https協議的接口設置成http的接口。

具體方法:

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

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

3)、把需要的支持的域添加給NSExceptionDomains。其中域作為Key,類型為字典類型。

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

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

技術分享

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)然後給它添加一個需要支持的項目,類型為字符串類型;

技術分享

參考鏈接:http://wiki.mob.com/ios9-對sharesdk的影響(適配ios-9必讀)/

  

iOS 適配iOS9