【轉】適配iOS9系統
昨天升級了Xcode 7 , 遇到的問題,從友盟的幫助文件看到,簡單的第三方適配如下:
在新發布的iOS9系統上圍繞使用者資料的安全性和體驗新增了一些安全特性,同時也影響了應用的實現以及整合方式,為了保證良好的穩定性和體驗,需要做如下處理:
1. HTTP傳輸安全
以iOS9 SDK編譯的工程會預設以SSL安全協議進行網路傳輸,即HTTPS,如果依然使用HTTP協議請求網路會報系統異常並中斷請求。目前可用如下兩種方式保持用HTTP進行網路連線:
A、在info.plist中加入安全域名白名單(右鍵info.plist用source code開啟)
<key>NSAppTransportSecurity</key>
<dict>
<key>NSExceptionDomains</key>
<dict>
<key>log.umsns.com</key>
<dict>
<key>NSIncludesSubdomains</key>
<true/>
<key>NSTemporaryExceptionAllowsInsecureHTTPLoads</key>
<true/>
<key>NSTemporaryExceptionMinimumTLSVersion</key>
<string>TLSv1.1</string>
</dict>
<key>sns.whalecloud.com</key>
<dict>
<key>NSIncludesSubdomains</key>
<true/>
<key>NSTemporaryExceptionAllowsInsecureHTTPLoads</key>
<true/>
<key>NSTemporaryExceptionMinimumTLSVersion</key>
<string>TLSv1.1</string>
</dict>
<!-- 整合新浪微博對應的HTTP白名單-->
<key>sina.cn</key>
<dict>
<key>NSIncludesSubdomains</key>
<true/>
<key>NSThirdPartyExceptionRequiresForwardSecrecy</key>
<false/>
</dict>
<key>weibo.cn</key>
<dict>
<key>NSIncludesSubdomains</key>
<true/>
<key>NSThirdPartyExceptionRequiresForwardSecrecy</key>
<false/>
</dict>
<key>weibo.com</key>
<dict>
<key>NSIncludesSubdomains</key>
<true/>
<key>NSThirdPartyExceptionAllowsInsecureHTTPLoads</key>
<true/>
<key>NSThirdPartyExceptionRequiresForwardSecrecy</key>
<false/>
</dict>
<!-- 新浪微博-->
<!-- 整合微信授權對應的HTTP白名單-->
<key>api.weixin.qq.com</key>
<dict>
<key>NSIncludesSubdomains</key>
<true/>
<key>NSThirdPartyExceptionAllowsInsecureHTTPLoads</key>
<true/>
<key>NSThirdPartyExceptionRequiresForwardSecrecy</key>
<false/>
</dict>
<!-- 微信授權-->
</dict>
</dict>
** 注:以上平臺如果沒有整合直接刪除相應配置即可 **
B、在info.plist的NSAppTransportSecurity下新增NSAllowsArbitraryLoads並設定為YES,指定所有HTTP連線都可正常請求
<key>NSAppTransportSecurity</key>
<dict>
<key>NSAllowsArbitraryLoads</key>
</true>
</dict>
2. 應用跳轉(SSO等)
如果你的應用使用瞭如SSO授權登入或跳轉分享功能,在iOS9下就需要增加一個可跳轉的白名單,指定對應跳轉App的URL Scheme,否則將在第三方平臺判斷是否跳轉時用到的canOpenURL時返回NO,進而只進行webview授權或授權/分享失敗。
同樣在info.plist增加:
<key>LSApplicationQueriesSchemes</key>
<array>
<!-- 微信 URL Scheme 白名單-->
<string>wechat</string>
<string>weixin</string>
<!-- 新浪微博 URL Scheme 白名單-->
<string>sinaweibohd</string>
<string>sinaweibo</string>
<string>sinaweibosso</string>
<string>weibosdk</string>
<string>weibosdk2.5</string>
<!-- QQ和Qzone URL Scheme 白名單-->
<string>mqqapi</string>
<string>mqq</string>
<string>mqqOpensdkSSoLogin</string>
<string>mqqconnect</string>
<string>mqqopensdkdataline</string>
<string>mqqopensdkgrouptribeshare</string>
<string>mqqopensdkfriend</string>
<string>mqqopensdkapi</string>
<string>mqqopensdkapiV2</string>
<string>mqqopensdkapiV3</string>
<string>mqzoneopensdk</string>
<string>mqqopensdkapiV3</string>
<string>mqqopensdkapiV3</string>
<string>wtloginmqq</string>
<string>wtloginmqq2</string>
<string>mqzone</string>
<string>mqzonev2</string>
<string>mqzoneshare</string>
<string>wtloginqzone</string>
<string>mqzonewx</string>
<string>mqzoneopensdkapiV2</string>
<string>mqzoneopensdkapi19</string>
<string>mqzoneopensdkapi</string>
<string>mqzoneopensdk</string>
</array>
** 注:以上平臺如果沒有整合直接刪除相應配置即可 **
3. 應用瘦身(App thining)
iOS9 SDK新增了對App瘦身的功能,詳情見App thining。目前各個第三方平臺正在進行App thining的支援,所以為了正常使用第三方SDK及分享SDK,需要在Build Setting中將Enable bitcode關閉,或設定編譯標識ENABLE_BITCODE=NO。
注:bitcode僅在Xcode7以上顯示並預設開啟。
4. 從友盟社會化分享iOS文件 轉載
注:本文首發於 iHTCboy`s blog,如若轉載,請註明來源。
相關文章
- iOS9適配TipiOS
- iOS12、iOS11、iOS10、iOS9常見適配iOS
- Oracle資料庫適配哪些國產作業系統?Oracle資料庫作業系統
- Android適配: 拉伸適配的缺點Android
- flutter 螢幕尺寸適配 字型大小適配Flutter
- 直播系統平臺搭建適配Android WebView 深色主題AndroidWebView
- 【CoCollider】讓系統和應用適配如此簡單IDE
- 移動適配:跳轉適配成功生效經驗分享
- iOS9獲取系統語言改變iOS
- 魅族或重拾Ubuntu系統? 傳PRO5率先適配Ubuntu
- Android適配Android
- iOS 11適配iOS
- https適配HTTP
- 適配iphone XiPhone
- iOS 11適配之跳轉App Store評論iOSAPP
- android螢幕適配三:通過畫素密度適配Android
- Android螢幕適配(理論適配100%機型)Android
- 騰訊影片推出Linux版本,完美適配中興新支點作業系統Linux作業系統
- 適配懸浮窗許可權與系統設定修改許可權
- Flutter螢幕適配Flutter
- Rem 等比適配始末REM
- Flutter深色模式適配Flutter模式
- h5適配H5
- rem 適配佈局REM
- Viewport 等比適配始末View
- iOS11 適配iOS
- iphone 適配的sdkiPhone
- UIWebView 適配螢幕UIWebView
- pc大屏適配
- iphoneX適配iPhone
- 適配Android4.4~Android11,呼叫系統相機,系統相簿,系統圖片裁剪,轉換檔案(對圖片進行上傳等操作)Android
- (原創)高DPI適配經驗系列:(四)高DPI適配示例
- 【移動適配】移動Web怎麼做螢幕適配(一)Web
- 【移動適配】移動Web怎麼做螢幕適配(三)Web
- 極其方便的系統原生圖片選取庫,已適配Android 7.0Android
- 藉助系統自帶圖片裁剪整合圖片選擇以及7.0適配
- (原創)高DPI適配經驗系列:(二)按DPI範圍適配
- ios11 劉海屏 安全區域 適配 彈框區域適配iOS