重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
NSAppTransportSecurity (对应的值为字典类型)被用来定义 app 在进行网络请求时的安全设定:为现有安全机制设定特例,或者开启新的安全特性。
十多年的碑林网站建设经验,针对设计、前端、开发、售后、文案、推广等六对一服务,响应快,48小时及时工作处理。成都全网营销推广的优势是能够根据用户设备显示端的尺寸不同,自动调整碑林建站的显示方式,使网站能够适用不同显示终端,在浏览器中调整网站的宽度,无论在任何一种浏览器上浏览网站,都能展现优雅布局与设计,从而大程度地提升浏览体验。成都创新互联从事“碑林网站设计”,“碑林网站推广”以来,每个客户项目都认真落实执行。
在苹果的开发平台上,有一种被称为 App Transport Security(ATS) 的网络安全机制,适用于 app 以及 app extension,默认开启。这项机制确保 app 在进行网络访问时,使用业界标准的,没有已知重大安全隐患的协议和加密方式,以此确保用户的隐私和数据完整性。从而培养用户对您的 app 的信任。
通过在 info.plist 中配置这个键,开发者可以自定义网络安全策略。例如:
对 NSAppTransportSecurity 的支持自 iOS9.0,OS X v10.11 开始,适用于 app 和 app extension。
自 iOS10.0,macOS 10.12 开始,增加了对下列子键的支持:
对于使用 iOS9.0, OS X v10.11 SDK 及以上的 app 来说,ATS(App Transport Security)默认开启, NSAllowsArbitraryLoads 是字典 NSAppTransportSecurity 的根键,默认值 NO 。
在启用 ATS 的情况下,所有的 HTTP 请求必须为 HTTPS( RFC 2818 ) 连接。任何不安全的 HTTP 请求都将失败。ATS 使用 TLS(Transport Layer Security)v1.2( RFC 5246 )。更多关于安全连接的信息,请查阅 HTTPS Server Trust Evaluation 。
下面是字典 NSAppTransportSecurity 的总体结构,所有键都是非必填项:
可以看出,所有键可以分为两类:主键,这些键用来定义 app 的总体 ATS 策略;子键,即 NSExceptionDomains 下面的键,使用这些键针对某个域名单独配置。
主键包括:
阅读 表2 ,获取关于上述主键的详细信息。
所有的子键都属于 NSExceptionDomain 。向 Info.plist 中添加这一主键:
例如,及时之前设置 NSAllowsArbitraryLoadsInMedia 为 YES,然而 NSExceptionDomain 所代表的域名依然不能访问不安全的媒体内容。
基于这样的设定,可以针对域名进行 ATS 配置,增加或减少安全措施。例如:
还参考 Certificate Transparency ,保证访问特定域名时的安全,详情见 Certificate Transparency 。
NSExceptionDomains 字典构成:
阅读 表3 ,获取关于 NSExceptionDomains 的进一步详细信息。
NSURLSession 以及所有与其相关的 API 都实现了对 ATS 的支持;如果您的 app 基于 iOS9.0 SDK 或 OS X v10.11 SDK 以上版本开发,ATS 自动开启。(较老的 NSURLConnection 同样会在上述 SDK 中开启对 ATS 的支持。)然而,在使用底层网络 API 或第三方网络库时,无法受到 ATS 的保护。
iOS9.0 或 OS X v10.11 以下版本,不支持 ATS, NSAppTransportSecurity 会被操作系统忽略。当 ATS 不可用时,系统将根据 RFC 2818 提供标准的 HTTPS 安全策略,对服务端进行验证。
当您的 app 运行在 iOS9.0 或者 OS X v10.11以下时,网络连接仍然可用,但 ATS 不起作用。
ATS 只针对 公共域名 起效。ATS 对已下连接无效:
为了连接非法域名或本地域名,需要将 NSAllowsLocalNetworking 设置为 YES。
在 ATS 完全开启的情况下,系统要求 app 的 HTTPS 连接必须满足以下要求:
上面的标准,未来可能会发生变化。但不会影响到 app 二进制包的兼容性。
暂略
能否自行改写服务器授信校验规则,取决于 ATS 是否针对某个域名开启。解释如下:
某些对 ATS 的配置会引发 App Store 的审核,开发者必须说明原因。这些键有:
以下是一些原因说明例子,供参考:
向 App Store 提交审核时,开发者应主动提供足够的信息,以便解释 app 无法使用安全连接的原因。
表2列出了 NSAppTransportSecurity 字典所有主键信息,通过定义这些主键,开发者可以配置 app 的网络行为。同 NSExceptionDomains 相关的子键信息请查看表3。
表2 ATS 字典主键
表3列举了用来针对某个域名进行网络安全配置所使用的键。
表3 针对某个域名进行网络安全配置的子键
下面介绍 NSAppTransportSecurity 的常见配置:
不影响整体 ATS 策略,只针对特定服务器进行不安全的网络请求——例如,从图片服务器请求图片——可在 Info.plist 中做如下配置:
重要: 使用上述配置之前,请注意其可能带来的潜在威胁。例如,通过 HTTP 连接从服务器获取媒体资源,可能带来如下风险:
不影响整体 ATS 策略,只针对特定服务器降低 HTTPS 的安全等级——包括使用较老版本的 TLS / SSL 协议,不支持正向保密——可在 Info.plist 中做如下配置:
假设正在开发一款浏览器应用,需要能够让用户访问任意 URL。这种情况下,开发者应该针对受控服务器使用安全连接,例如用于发布 app 更新的服务器。
为了能够让针对受控服务器的访问享受 ATS 保护,同时保证其他不安全访问可用,可在 Info.plist 中做如下配置:
暂略
暂略
注意点:SiriKit在iOS10里面开发者可以使用SiriSDK,这可能是iOS10最重要的新SDK之一。开发者可以使用原生API提供语音搜索、语音转文字消息甚至常见语音功能。MessageAppExtension在iOS10里面开发者可以给Message.app提供两种AppExtension,分别是可以提供一个表情包,和一个自定义的界面,用于表情搜索等。iOS10最重要的开发特点就是允许第三方应用对自带基础app的拓展关联。需要注意的是,和以往历代iOS版本推出一样,新陈代谢,有新SDK、新API的开放,也会有旧的API被遗弃,所以好好检查你的项目,使用了被遗弃的API要尽快修改,以免不兼容。
你下载xcode,xcode里面的帮助文档就是开发的光放文档,不需要花钱的,你也可以访问网址:
希望对你有所帮助。
直接使用Safari浏览器打开文末地址,之后按照提示安装描述文件并重启,之后即可在系统更新中检查到“iOS10 Developer Beta 1”,以iPhone6s为例,更新固件大小为1.7GB。
从开发者官网可以看到,苹果在iOS10上对固件进行了重新整合,不再是一款机型对应一个单独的固件版本,也将在稍后为大家带来iOS10开发者预览版beta1的固件下载大全,届时用户可使用iTunes进行更新升级。
需要特别提醒大家的是,iOS10首个开发者预览版必然会存在不少的Bug以及兼容性问题,因此大家尽量不要在自己的主力设备上进行尝试,如果非要更新体验,请务必提前用iCloud或iTunes做好备份,以防万一。
苹果iOS支持的设备列表也发生了变化,请参看《苹果iOS10兼容设备列表公布:你的iPhone/iPad还能升级吗? 》以确保你的iPhone/iPad可更新至iOS10。