IOS9的适配 有关企业级证书、网络请求、定位、URL Scheme的讨论和解决方案
来源:互联网 发布:网络虚拟超市怎么开 编辑:程序博客网 时间:2024/05/16 01:35
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
- IOS9的适配 有关企业级证书、网络请求、定位、URL Scheme的讨论和解决方案
- iOS9----HTTPS 进行网络请求的解决方案
- iOS9 HTTP网络请求不成功的解决方案
- iOS9模拟器无法进行HTTP网络请求的解决方案
- iOS9模拟器无法进行 HTTP 网络请求的解决方案
- iOS9模拟器无法进行HTTP网络请求的解决方案
- iOS9的网络请求简述
- iOS9 - 自定义URL Scheme完成应用间的跳转
- iOS 9 适配系列-网络适配&后台定位&bitcode&URL scheme
- iOS9 中的网络请求适配(http请求的允许)
- 有关企业级证书的ios应用升级的问题
- iOS9网络请求错误的原因
- Android URL Scheme的学习和使用
- ios9企业证书提示“未受信任的企业级开发者”解决方法
- 项目适配iOS9遇到的网络请求报错问题及解决办法
- ios的URL Scheme
- http请求被浏览器abort的原因定位和解决方案
- Xcode7 iOS9网络请求适配 网络白名单
- Dubbox搭建
- Android异步处理之AsyncTaskLoader简单使用
- gdb基本命令
- 人民网评:政府网站不能有“僵尸”
- Nginx + fail2ban 提高安全性
- IOS9的适配 有关企业级证书、网络请求、定位、URL Scheme的讨论和解决方案
- 动态生成Panel
- Thread, Looper, Handler
- 火云开发课堂 - 《Shader从入门到精通》系列 第三节:在Shader中使用顶点色
- ios 错误
- Java Properties工具类详解
- Android 颜色渲染(九) PorterDuff及Xfermode详解
- iOS开发学习之无限滚动UICollectionView和BUG解决措施
- PHP学习笔记——搭建PHP开发环境---阿冬专栏