您的位置:首页 > 理论基础 > 计算机网络

IOS9的适配 有关企业级证书、网络请求、定位、URL Scheme的讨论和解决方案

2015-09-21 10:54 836 查看
http://www.devlizy.com/wei-ming-ming/

虽然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.IOS
9 适配系统教程 

2.Privacy
and Your App
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: