App Transport Security(ATS
) 是苹果为增强App网络通信安全提出的安全功能,移动端适用于iOS App和App Extension;在启用ATS之后,它会强制应用通过HTTPS(而不是HTTP)连接网络服务。
- WWDC 2016上提出,2016年底或2017年初(准确实行时间可关注Apple News and Updates),App Store新上架App将加强ATS配置的审核;
- 此次Apple对于ATS的限制,仅是App Store审核策略的变更,测试时仍然可通过配置
Info.plist
发送HTTP请求。
官方文档可参考:Apple Doc - NSAppTransportSecurity。
苹果开发者论坛ATS相关变更声明贴,参考Apple Forums - App Transport Security。
ATS详细适配策略可参考:云栖社区 - 苹果ATS(强制HTTPS)审核新政解码。
当前阿里云移动服务全系列产品,包括移动推送、HTTPDNS、移动加速、移动数据分析等均已完成对苹果ATS安全标准的适配。
针对ATS适配,升级建议如下:
- 从移动服务控制台下载各产品最新版本SDK进行替换,注意SDK全部依赖包都需要进行替换;
- 删除
Info.plist
中ATS相关配置,如NSAllowsArbitraryLoads
无需置为YES
等;
各产品SDK额外注意事项:
-
HTTPDNS
- HTTPDNS iOS SDK支持发送
HTTP
或HTTPS
域名解析请求,默认为HTTP
域名解析请求,调用setHTTPSRequestEnabled
接口可以使能HTTPS
域名解析请求发送,参考HTTPDNS iOS SDK手册; - SDK的
HTTP
域名解析请求,基于CFNetwork实现,不受苹果ATS的限制,可以正常请求并获取到域名解析结果; - HTTPDNS
HTTPS
域名解析接口计费说明,参考HTTPDNS 详细价格信息; - HTTPS业务场景需要考虑SSL/TLS握手问题,解决方案参考HTTPS业务场景解决方案和iOS HTTPS Demo;
-
SNI
(单IP多HTTPS域名)场景,解决方案参考单IP多HTTPS域名场景下的解决方案和iOS SNI Demo。
- HTTPDNS iOS SDK支持发送
-
移动数据分析
-
UTMini.framework
依赖修改为UT.framework
,参考移动数据分析 iOS SDK手册。
-