IOS9的适配 有关企业级证书、网络请求、定位、URL Scheme的讨论和解决方案
2015-09-21 10:54
836 查看
http://www.devlizy.com/wei-ming-ming/
虽然WWDC已经在今天的6月9号已经举行了,但对于IOS9的适配最近才开始。 首先是工作上的忙碌,
二是距离IOS9正式发行其实还有一段时间的。近日有空试验了IOS9,对于一些重要的适配问题深入的了解和探讨。本文主要讲IOS9主要的适配方面的问题,还有公司对IOS9作出的改变。
为此特意升级了IOS9来试验,有关如何升级IOS9,点此传送门
但是在IOS9出现的时候,变成了如下:
若要应用可以正常使用,必须先通过手机设置信任,步骤:(设置->通用->描述文件->选择相应的描述文件点信任) 步骤繁琐,若要让用户如此操作,估计早就不耐烦了。
而公司之前主要推广渠道为官网的二维码扫码,也就是企业级安装方式。自从出现了IOS9,为了提早预防用户的流失,于是公司决定以后APP的渠道都转向AppStore上。
官网说明
目前有两种方式解决这个问题
将接口全部换成HTTPS,符合官网的建议。
在info.plist中声明,使其能正常访问http(解决方法参考 ChenYilong)
Info.plist 配置中的XML源码如下所示:
如果想请求所有HTTP接口
公司方面为了统一和大局考虑,将使后端改成HTPPS的方式。这样手机端只要把HOST加个S就好了。
代码中:
info.plist中:
解决: 在info.plist中添加
官网说明 WWDC
2015 Session 703: "Privacy and Your App"
9 适配系统教程
2.Privacy
and Your App
虽然WWDC已经在今天的6月9号已经举行了,但对于IOS9的适配最近才开始。 首先是工作上的忙碌,
点呀点正在发布3.1版本,同时又有一个新的APP从0起步。
二是距离IOS9正式发行其实还有一段时间的。近日有空试验了IOS9,对于一些重要的适配问题深入的了解和探讨。本文主要讲IOS9主要的适配方面的问题,还有公司对IOS9作出的改变。
为此特意升级了IOS9来试验,有关如何升级IOS9,点此传送门
1.企业级证书分发
在IOS8以前,如何使用企业级证书是这样提示的:但是在IOS9出现的时候,变成了如下:
若要应用可以正常使用,必须先通过手机设置信任,步骤:(设置->通用->描述文件->选择相应的描述文件点信任) 步骤繁琐,若要让用户如此操作,估计早就不耐烦了。
而公司之前主要推广渠道为官网的二维码扫码,也就是企业级安装方式。自从出现了IOS9,为了提早预防用户的流失,于是公司决定以后APP的渠道都转向AppStore上。
2.网络请求
自IOS9以后苹果官网建议使用HTPPS,更安全的传输方式。而普通的HTTP将会被禁止。不过在我尝试了IOS9系统后,发现,如果你的包是在IOS8下编译的那么苹果会兼容以前的版本,能够成功访问HTTP的接口。但如果使用新的IOS9下编译,那么网络将请求不了。官网说明
目前有两种方式解决这个问题
将接口全部换成HTTPS,符合官网的建议。
在info.plist中声明,使其能正常访问http(解决方法参考 ChenYilong)
Info.plist 配置中的XML源码如下所示:
<key>NSAppTransportSecurity</key> <dict> <key>NSExceptionDomains</key> <dict> <key>yourserver.com</key> <dict> <!--允许子域名:subdomains--> <key>NSIncludesSubdomains</key> <true/> <!--允许App进行不安全的HTTP请求--> <key>NSTemporaryExceptionAllowsInsecureHTTPLoads</key> <true/> <!--在这里声明所支持的 TLS 最低版本--> <key>NSTemporaryExceptionMinimumTLSVersion</key> <string>TLSv1.1</string> </dict> </dict> </dict>
如果想请求所有HTTP接口
<key>NSAppTransportSecurity</key> <dict> <!--彻底倒退回不安全的HTTP网络请求,能任意进行HTTP请求 (不建议这样做)--> <key>NSAllowsArbitraryLoads</key> <true/> </dict>
公司方面为了统一和大局考虑,将使后端改成HTPPS的方式。这样手机端只要把HOST加个S就好了。
3.定位
IOS9中若要请求后台定位权限,则需要多加一些代码。如果不适配iOS9,就不能偷偷在后台定位,会出现蓝条代码中:
if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 9) { _locationManager.allowsBackgroundLocationUpdates = YES; }
info.plist中:
<key>NSLocationAlwaysUsageDescription</key> <string>XX应用请求后台定位权限</string> <key>UIBackgroundModes</key> <array> <string>location</string> </array>
4.URL Scheme
在IOS9中 需要将使用的URL Scheme列为白名单,否则不能使用。openURL 和 canOpenURL 均无法使用。解决: 在info.plist中添加
<key>LSApplicationQueriesSchemes</key> <array> <string>urlscheme</string> <string>urlscheme2</string> <string>urlscheme3</string> <string>urlscheme4</string> </array>
官网说明 WWDC
2015 Session 703: "Privacy and Your App"
小结
本文主要介绍了IOS9的改动,以及目前APP需要做的调整,文中所提及的并非所有新特性,更多特性还需要到官网,在此只讲了一些发生重大改变的。笔者亲试IOS9,所写均已试验。希望通过此文能够让大家友好地过渡到IOS9的适配。参考资料
1.IOS9 适配系统教程
2.Privacy
and Your App
相关文章推荐
- HDU 5455 Fang Fang 2015沈阳网络赛
- SSL协议(HTTPS) 握手、工作流程详解(双向HTTPS流程)
- android-async-http AsyncHttpClient介绍
- ACM-ICPC国际大学生程序设计竞赛北京赛区(2015)网络赛 E题 hihoCoder 1231 Border Length
- 数据挖掘(10):卷积神经网络算法的一个实现
- 9月第2周网络安全报告:境内87.8万主机感染病毒
- 应用层协议系列(两)——HTTPserver之http协议分析
- 数据挖掘(9):BP神经网络算法与实践
- HTTP状态码
- xcode升级后IOS9必须用https,让http也可以上网的方法
- 网络流量监控脚本
- http调试,抓包工具-fiddler
- https 的内容的讲解以及和http的关系
- TCP协议以及套接字方面的总结(1)
- 同步与异步、阻塞与非阻塞
- Android网络传输中必用的两个加密算法:MD5 和 RSA (附java完成测试代码)
- Linux服务管理之httpd-2.4常用配置及phpMyAdmin的安装配置
- Android加载网络图片的工具类
- ACM-ICPC国际大学生程序设计竞赛北京赛区(2015)网络赛 1007 Boxs(状态压缩+搜索)
- ACM-ICPC国际大学生程序设计竞赛北京赛区(2015)网络赛A题