阅读更多

1顶
0踩

移动开发

转载新闻 iOS9之后我们需要关注的事情

2016-01-15 11:21 by 副主编 mengyidan1988 评论(0) 有6412人浏览



应用隐私控制-外部调用
iOS9增加了隐私控制,自己的应用如果需要调用其它应用,需要在工程的info.plist中添加一个key为LSApplicationQueriesSchemes的数组值,里面包含需要添加白名单的string类型的scheme。即使用URL scheme将其加入白名单。如项目中使用了qq,微信等分享登录功能,需要添加的值为:
mqqopensdkapiV2

mqqOpensdkSSoLogin

mqq

mqzoneopensdkapiV2

mqzoneopensdkapi19

mqzoneopensdkapi

mqzoneopensdk

mqzone

weixin

wechat ...




如果不添加该项,使用canOpenURL:判断应用是否安装时会报错。
canOpenURL: failed for URL: "mqqopensdkapiV2://qqapp" - error: "This app is not allowed to query for scheme mqqopensdkapiV2”

bitcode
bitcode是被编译程序的一种中间形式的代码。包含bitcode配置的程序将会在App store上被编译和链接。bitcode允许苹果在后期重新优化我们程序的二进制文件,而不需要我们重新提交一个新的版本到App store上。

Xcode7 默认开启了bitcode,如果App使用的第三方类库不支持bitcode会提示错误,只需要在”Build Settings”->”Enable Bitcode”选项中关闭bitcode即可。

开启Bitcode编译后,编译产生的文件体积会变大 (因为是中间代码,不是用户下载的包),且dSYM文件不能用来崩溃日志的符号化 (用户下载的包是Apple服务重新编译产生的,有产生新的符号文件)。通过Archive方式上传AppStore的包,可以在 Xcode的Organizer工具中下载对应安装包的新的符号文件。

改用更安全的HTTPS
如果在Xcode 9之前使用的时http请求,那么在XCode 9上编译的App是不能联网的。iOS9把所有的http请求都改为https了:iOS9系统发送的网络请求将统一使用TLS 1.2 SSL。采用TLS 1.2 协议,目的是 强制增强数据访问安全,而且 系统 Foundation 框架下的相关网络请求,将不再默认使用 Http 等不安全的网络协议,而默认采用 TLS 1.2。

修改方法是要么使服务器支持https访问,要么关闭https的使用。第一种方法对于个人开发者来说代价还是比较大的,第二种方法:在工程的Info.plist文件里添加NSAppTransportSecurity字典类型的,添加一个元素:key为NSAllowsArbitraryLoads,值为YES。

什么是SSL/TLS


HTTP+SSL/TLS+TCP = HTTPS
TLS 是 SSL 新的别称。SSL 3.0版本之后的迭代版本被重新命名为TLS 1.0。

SSL/TLS协议解决的问题

1.所有信息都是加密传播,第三方无法窃 听。
2.具有校验机制,一旦被篡改,通信双方会立刻发现。
3.配备身份证书,防止身份被冒充。

iOS9中新增App Transport Security(简称ATS)特性, 主要使原来请求的时候用到的HTTP,都转向TLS1.2协议进行传输。这也意味着所有的HTTP协议都强制使用了HTTPS协议进行传输。

在Info.plist新增一段用于控制ATS的配置:



这段配置中的NSAppTransportSecurity是ATS配置的根节点,配置了节点表示告诉系统要走自定义的ATS设置。而NSAllowsAritraryLoads节点则是控制是否禁用ATS特性,设置YES就是禁用ATS功能。

其实ATS并不单单针对HTTP进行了限制,而是对HTTPS也有一定的要求,如果你希望自己所有的域名,除了一些已知并不会使用ATS之外的,所有通信都使用ATS。这种情况下你可以指定一些不使用ATS的特殊情况,而其余的情况使用ATS。对于这种场景,可以使用NSExceptionDomains来标识使用ATS默认设置的域。
以QQdemo为例:



其中NSIncludesSubdomains设置为YES表示子级域名都使用相同设置。NSExceptionRequiresForwardSecrecy为NO由于不支持ForwardSecrecy,因此屏蔽掉改功能。最后NSExceptionAllowInsecureHTTPLoads设置为YES,则表示允许访问没有证书或者是自签名、过期、主机名不匹配的证书引发的错误的域名(这里检查过QQ的证书貌似没有什么问题,但是还是需要设置此项才允许访问)。这是比较严谨的做法,指定了能访问哪些特定的HTTP。

forward secrecy
中文可叫做前向保密。perfect forward secrecy,叫做完全前向保密,要求一个密钥只能访问由它所保护的数据;用来产生密钥的元素一次一换,不能再产生其他的密钥;一个密钥被破解,并不影响其他密钥的安全性。

支持Forward Secrecy的加密方式
TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384
TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256
TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384
TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA
TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256
TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA
TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384
TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256
TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA


本文转自:简书
  • 大小: 49.9 KB
  • 大小: 161.3 KB
  • 大小: 19.2 KB
  • 大小: 98.7 KB
来自: 简书
1
0
评论 共 0 条 请登录后发表评论

发表评论

您还没有登录,请您登录后再发表评论

相关推荐

  • 搏客堂宣言,觉得在理 ,收藏之

    博客不在多,有激情就行;内容不在深,无堆砌转载就灵。斯,是博客堂,唯技术先行。架构满篇飞,代码无陋空。谈笑业界事,调侃如梦中。    可以调程序,阅MSDN之圣经。无论坛之乱耳,无媒体之忘形。南到海南岛,北到哈尔滨,众博客曰:开心就好!

  • 我的博客宣言

    博客初衷 写博客的原因是想记录下自己的学习历程。 将学习到的一些知识记录在博客里,并可以随时复习。 告诫自己 人都是惰性的,每个人的时间是一定的,要珍惜时间。积极生活,努力学习,不负韶华不负己。 借用太祖的词: 多少事,从来急;    天地转,光阴迫。    一万年太久,只争朝夕。 ...

  • 中国博客宣言:一个时代的激情颠覆

                           中国博客宣言:一个时代的激情颠覆                                  许晓辉 | 激扬文字 | 出处:原创-IT| 2006年01月19日 11:00 | 原文:诸神退位、理想缺席、偶像当道,这是一个迷失自我的年代,以至于让我们不得不从对过去的回忆中寻找安慰。那些关于英雄主义和理想主义的故人和往

  • 博客宣言

    关于技术博客的位置,想来想去,决定还是在CSDN上进行发表吧。也不是说代表自己水平有多高,还挑来挑去的,而是说,自己写的这些东西不能白写啊,而是要发挥这些文章的价值。即能够让更多的人看到我写的博客,这样才能共享研究成果,建立比较系统的研究文档和资料,让更多的人加入到WebKit的

  • IOS 9 适配

    iOS9网络适配_ATS:改用更安全的HTTPS(见Demo1) WHAT(什么是SSL/TLS?跟HTTP和HTTPS有什么关系) WHY(以前的HTTP不是也能用吗?为什么要用SSL/TLS?Apple是不是又在反人类?) HOW(如何适配?---弱弱地问下:...

  • IOS9 适配注意事项

    转自https://github.com/ChenYilong/iOS9AdaptationTips 作者 微博@iOS程序犭袁 ...更多iOS开发干货,欢迎关注 微博@iOS程序犭袁) 中文快速导航: iOS9网络适配_ATS:改用更安全的HTTPS(见Demo1)

  • iOS9适配系列教程

    转载自https://github.com/ChenYilong/iOS9AdaptationTips 1. Demo1_iOS9网络适配_ATS:改用更安全的HTTPS [摘要]为了强制增强数据访问安全, iOS9 默认会把 所有的http请求 所有从NSURLConnection 、...

  • 升级到iOS9之后的相关适配

    iOS9AdaptationTips(iOS9开发学习交流群:458884057) iOS9适配系列教程【中文在页面下方】转自@iOS程序犭袁 (截至2015年9月26日共有10篇,后续还将持续更新。更多iOS开发干货,欢迎关注 微博@iOS程序犭袁 ) ...

  • iOS中Block的使用注意事项

    //定义一个Block typedef returnType(^... 总结 使用 Block 过程中需要我们关注的重点有 4 个: block 的三种类型; block 避免引起循环引用; block 对 auto 变量的 copy 操作; __block、__weak、__strong 的作用;

  • 个人博客宣言

    转眼间毕业了9年了,从刚毕业时工作中的不知所措,学习不深入,找不到法门,到慢慢的有了一些积累,自己有了一些见解,已能逐步深入的分析某个知识点,自己还是有一些成长的。虽然在工作和学习的过程中有一些简单的日志记录,但是由于不系统、没有归纳,回首起来也是一片茫然。在此为自己定一些简单的规则,希望自己能够坚持下去,若干年后回首起来能够看到自己的成长:1.做技术要坚持实时求实,懂就是懂,不懂就是不懂,不要糊...

  • Https iOS需要做的事

    Https iOS需要做的事情 HTTPS就是将HTTP协议数据包放到SSL/TSL层加密后,在TCP/IP层组成IP数据报去传输,以此保证传输数据的安全;而对于接收端,在SSL/TSL将接收的数据包解密之后,将数据传给HTTP协议层,就是普通...

  • 开发者所需要知道的 iOS 9 SDK 新特性

    今年的 WWDC 一如既往的热闹,但是因为要照顾家里刚出生的宝宝以及宝宝的娘,就只能在家里的“窝里蹲”家庭影院来关注这一全球 Apple 开发者的盛会了。 生命不息,学习不止。一如以往几年,我会陆续写一些关于 ...

  • iOS8过渡到iOS9,Xcode6过渡到Xcode7

    iOS9适配技巧 中文快速导航: 1.iOS9网络适配_ATS:改用更安全的HTTPS(见Demo1) i. WHAT(什么是SSL/TLS?跟HTTP和HTTPS有什么关系) ii. WHY(以前的HTTP不是也能用吗?为什么要用SSL/TLS?Apple是不是...

  • iOS9AdaptationTips

    非常好的ios9网络适配文章,这边记录一下: ...

  • iOS11、iPhoneX、Xcode9 的注意点汇总

    参考文章:  WWDC 2017 session204: Updating Your App for iOS 11  ...你可能需要为你的 APP 适配 iOS11  iOS11 导航栏按钮位置问题的解决  iOS11 遇到的坑及解决方法  适配 iOS11&iPhone

  • iphone怎么更新9.0系统更新服务器,iOS 9 推送前你必须知道的几件事:iOS 9 升级指南...

    iOS 9 即将在美国时间的 9 月 16...在你的想像里,升级到 iOS 9 只需要那天早上一起来,解锁屏幕以后点击那个大大的更新按钮,一切就大功告成了。不过,理想和现实总是有差距的,还是一起来看看有哪些注意事项吧。我...

  • iOS面试准备 - ios篇

    ios工程师面试 基础知识 ios篇

  • iOS9的新特性

    2015年9月8日,苹果宣布iOS 9操作系统的正式版在太平洋时间9月16日正式推出,北京时间9月17日凌晨1点推送。  新的iOS 9系统比iOS8更稳定,功能更全面,而且还更加开放。iOS 9加入了更多的新功能,包括更加智能的...

  • ios kb转m_ios9更新1.2kb是怎么回事 ios9正式版更新显示只有1.2kb怎么办

    ios9壁纸V1.0.0 ios版类型:系统工具大小:1.6M语言:多国语言[中文] 评分:10.0标签:立即下载今天已经有很多用户都已经成功升级安装了ios9正式版,ios9新增了一些新功能,不少用户在升级ios9之后还是比较满意的,...

Global site tag (gtag.js) - Google Analytics