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]
在新发布的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]
相关文章推荐
- iOS-Git使用详解
- iOS遇到的那些事(持续总结并更新)-MickyChiang
- iOS发布证书申请
- iOS定时器
- IOS开发:url编码和解码
- iOS--资料--Github上的iOS资料收集(持续更新)
- iOS中的绝对值处理
- Masonry — 使用纯代码进行iOS应用的autolayout自适应布局
- iOS和AnidroEmoji表情同步转码
- iOS第三方库利器cocoapods安装和使用,深度解决被墙的问题
- IOS Emoji 编码打印
- [记录 ]升级IOS 9 和 XCode 7 引起的问题
- iOS动画效果和实现
- IOS开发——隐藏键盘的4种方法
- Xcode7 Cocoapods po update新第三方库时出现的问题和解决
- 从零开始学iOS开发,15条建议---资料整理(持续更新)
- 需求:如何安装发布前的ipa
- iOS 拷贝、剪切和粘贴理论基础
- NSBundle
- ios 国际化(项目名和内容)