您的位置:首页 > 移动开发 > IOS开发

iOS9适配必看指南

2015-10-12 12:14 274 查看
原文地址:http://bbs.umeng.com/thread-11125-1-1.html

在新发布的iOS9系统上围绕用户数据的安全性和体验新增了一些安全特性,同时也影响了应用的实现以及集成方式,为了保证良好的稳定性和体验,需要做如下处理:

(ps.由于目前QQ SDK官方并未给出明确的白名单,故QQ相关白名单可能并不够完善,我们会不断进行补充,也欢迎开发者提供建议)

[align=left]1. HTTP传输安全[/align]
[align=left]以iOS9 SDK编译的工程会默认以SSL安全协议进行网络传输,即HTTPS,如果依然使用HTTP协议请求网络会报系统异常并中断请求。目前可用如下两种方式保持用HTTP进行网络连接:[/align]

[align=left]A、在info.plist中加入安全域名白名单(右键info.plist用source code打开)[/align]

[align=left]<key>NSAppTransportSecurity</key>[/align]
[align=left]<dict>[/align]
[align=left] <key>NSExceptionDomains</key>[/align]
[align=left] <dict>[/align]
[align=left] <key>log.umsns.com</key>[/align]
[align=left] <dict>[/align]
[align=left] <key>NSIncludesSubdomains</key>[/align]
[align=left] <true/>[/align]
[align=left] <key>NSTemporaryExceptionAllowsInsecureHTTPLoads</key>[/align]
[align=left] <true/>[/align]
[align=left] <key>NSTemporaryExceptionMinimumTLSVersion</key>[/align]
[align=left] <string>TLSv1.1</string>[/align]
[align=left] </dict>[/align]
[align=left] <key>sns.whalecloud.com</key>[/align]
[align=left] <dict>[/align]
[align=left] <key>NSIncludesSubdomains</key>[/align]
[align=left] <true/>[/align]
[align=left] <key>NSTemporaryExceptionAllowsInsecureHTTPLoads</key>[/align]
[align=left] <true/>[/align]
[align=left] <key>NSTemporaryExceptionMinimumTLSVersion</key>[/align]
[align=left] <string>TLSv1.1</string>[/align]
[align=left] </dict>[/align]

[align=left] <!-- 集成新浪微博对应的HTTP白名单-->[/align]
[align=left] <key>sina.cn</key>[/align]
[align=left] <dict>[/align]
[align=left] <key>NSIncludesSubdomains</key>[/align]
[align=left] <true/>[/align]
[align=left] <key>NSThirdPartyExceptionRequiresForwardSecrecy</key>[/align]
[align=left] <false/>[/align]
[align=left] </dict>[/align]
[align=left] <key>sina.com.cn</key>[/align]
[align=left] <dict>[/align]
[align=left] <key>NSIncludesSubdomains</key>[/align]
[align=left] <true/>[/align]
[align=left] <key>NSThirdPartyExceptionRequiresForwardSecrecy</key>[/align]
[align=left] <false/>[/align]
[align=left] </dict>[/align]
[align=left] <key>weibo.cn</key>[/align]
[align=left] <dict>[/align]
[align=left] <key>NSIncludesSubdomains</key>[/align]
[align=left] <true/>[/align]
[align=left] <key>NSThirdPartyExceptionRequiresForwardSecrecy</key>[/align]
[align=left] <false/>[/align]
[align=left] </dict>[/align]
[align=left] <key>weibo.com</key>[/align]
[align=left] <dict>[/align]
[align=left] <key>NSIncludesSubdomains</key>[/align]
[align=left] <true/>[/align]
[align=left] <key>NSThirdPartyExceptionAllowsInsecureHTTPLoads</key>[/align]
[align=left] <true/>[/align]
[align=left] <key>NSThirdPartyExceptionRequiresForwardSecrecy</key>[/align]
[align=left] <false/>[/align]
[align=left] </dict>[/align]
[align=left] <!-- 新浪微博-->[/align]

[align=left] <!-- 集成微信、QQ、Qzone、腾讯微博授权对应的HTTP白名单-->[/align]
[align=left] <key>qq.com</key>[/align]
[align=left] <dict>[/align]
[align=left] <key>NSIncludesSubdomains</key>[/align]
[align=left] <true/>[/align]
[align=left] <key>NSThirdPartyExceptionAllowsInsecureHTTPLoads</key>[/align]
[align=left] <true/>[/align]
[align=left] <key>NSThirdPartyExceptionRequiresForwardSecrecy</key>[/align]
[align=left] <false/>[/align]
[align=left] </dict>[/align]
[align=left] <!-- 腾讯授权-->[/align]

[align=left] <!-- 集成人人授权对应的HTTP白名单-->[/align]
[align=left] <key>renren.com</key>[/align]
[align=left] <dict>[/align]
[align=left] <key>NSIncludesSubdomains</key>[/align]
[align=left] <true/>[/align]
[align=left] <key>NSThirdPartyExceptionAllowsInsecureHTTPLoads</key>[/align]
[align=left] <true/>[/align]
[align=left] <key>NSThirdPartyExceptionRequiresForwardSecrecy</key>[/align]
[align=left] <false/>[/align]
[align=left] </dict>[/align]
[align=left] <!-- 人人授权-->[/align]

[align=left] </dict>[/align]
[align=left]</dict>[/align]

[align=left]注:以上部分平台官方未给出相应白名单,由技术人员测试各个平台所收集而来,如果有所遗漏,请自行加入并向客服说明,我们会进一步补充名单。[/align]

[align=left]B、在info.plist的NSAppTransportSecurity下新增NSAllowsArbitraryLoads并设置为YES,指定所有HTTP连接都可正常请求[/align]

[align=left]<key>NSAppTransportSecurity</key>[/align]
[align=left]<dict>[/align]
[align=left] <key>NSAllowsArbitraryLoads</key>[/align]
[align=left] </true>[/align]
[align=left]</dict>[/align]

[align=left]2. 应用跳转(SSO等)[/align]
[align=left]如果你的应用使用了如SSO授权登录或跳转分享功能,在iOS9下就需要增加一个可跳转的白名单,指定对应跳转App的URL Scheme,否则将在第三方平台判断是否跳转时用到的canOpenURL时返回NO,进而只进行webview授权或授权/分享失败。[/align]
[align=left]同样在info.plist增加:[/align]

[align=left]<key>LSApplicationQueriesSchemes</key>[/align]
[align=left]<array>[/align]
[align=left] <!-- 微信 URL Scheme 白名单-->[/align]
[align=left] <string>wechat</string>[/align]
[align=left] <string>weixin</string>[/align]

[align=left] <!-- 新浪微博 URL Scheme 白名单-->[/align]
[align=left] <string>sinaweibohd</string>[/align]
[align=left] <string>sinaweibo</string>[/align]
[align=left] <string>sinaweibosso</string>[/align]
[align=left] <string>weibosdk</string>[/align]
[align=left] <string>weibosdk2.5</string>[/align]

[align=left] <!-- QQ、Qzone URL Scheme 白名单-->[/align]
[align=left] <string>mqqapi</string>[/align]
[align=left] <string>mqq</string>[/align]
[align=left] <string>mqqOpensdkSSoLogin</string>[/align]
[align=left] <string>mqqconnect</string>[/align]
[align=left] <string>mqqopensdkdataline</string>[/align]
[align=left] <string>mqqopensdkgrouptribeshare</string>[/align]
[align=left] <string>mqqopensdkfriend</string>[/align]
[align=left] <string>mqqopensdkapi</string>[/align]
[align=left] <string>mqqopensdkapiV2</string>[/align]
[align=left] <string>mqqopensdkapiV3</string>[/align]
[align=left] <string>mqzoneopensdk</string>[/align]
[align=left] <string>wtloginmqq</string>[/align]
[align=left] <string>wtloginmqq2</string>[/align]
[align=left] <string>mqqwpa</string>[/align]
[align=left] <string>mqzone</string>[/align]
[align=left] <string>mqzonev2</string>[/align]
[align=left] <string>mqzoneshare</string>[/align]
[align=left] <string>wtloginqzone</string>[/align]
[align=left] <string>mqzonewx</string>[/align]
[align=left] <string>mqzoneopensdkapiV2</string>[/align]
[align=left] <string>mqzoneopensdkapi19</string>[/align]
[align=left] <string>mqzoneopensdkapi</string>[/align]
[align=left] <string>mqzoneopensdk</string>[/align]

[align=left] <!-- 人人 URL Scheme 白名单-->[/align]
[align=left] <string>renrenios</string>[/align]
[align=left] <string>renrenapi</string>[/align]
[align=left] <string>renren</string>[/align]
[align=left] <string>renreniphone</string>[/align]

[align=left] <!-- 易信 URL Scheme 白名单-->[/align]
[align=left] <string>yixin</string>[/align]

[align=left] <!-- instagram URL Scheme 白名单-->[/align]
[align=left] <string>instagram</string>[/align]

[align=left] <!-- whatsapp URL Scheme 白名单-->[/align]
[align=left] <string>whatsapp</string>[/align]

[align=left] <!-- line URL Scheme 白名单-->[/align]
[align=left] <string>line</string>[/align]

[align=left]</array>[/align]

[align=left]注:以上部分平台官方未给出相应白名单,由技术人员测试各个平台所收集而来,如果有所遗漏,请自行加入并向客服说明,我们会进一步补充名单。[/align]

[align=left]3. 应用瘦身(App thining)[/align]
[align=left]iOS9 SDK新增了对App瘦身的功能,详情见App thining。目前各个第三方平台正在进行App thining的支持,所以为了正常使用第三方SDK及分享SDK,需要在Build Setting中将**Enable bitcode**关闭,或设置编译标识ENABLE_BITCODE=NO。[/align]
[align=left]注:bitcode仅在Xcode7以上显示并默认开启。[/align]
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: