|
[公告]
【苹果HTTPS政策】应用ATS配置说明及注意事项
[复制链接]
WWDC 15提出的ATS(App Transport Security),旨在加强应用网络数据安全,在iOS 9中,默认情况下非https的网络访问是被禁止的。不过并没有强制要求,我们可以在Info.plist中添加NSAppTransportSecurity字典并且将NSAllowsArbitraryLoads设置为YES来禁用ATS。
不过,WWDC 16中,Apple表示将继续在iOS 10里收紧对普通http的访问限制。从2017年1月1日起,所有的新提交app默认是不允许配置NSAllowsArbitraryLoads为YES来绕过ATS限制的,所以我们最好保证app的所有网络请求都是https加密的,否则可能会在应用审核时遇到麻烦,需要提供足够的理由。
目前云编译默认的ATS配置是设置的NSAllowsArbitraryLoads为YES,即允许所有的http访问,关于如何在Info.plist中进行ATS配置可以参照这里帖子,file:///C:\Users\Administrator\AppData\Roaming\Tencent\QQ\Temp\%W@GJ$ACOF(TYDYECOKVDYB.pnghttps://community.apicloud.com/bbs/forum.php?mod=viewthread&tid=20。
以下是开发过程中针对ATS设置的一些注意事项:
1、api对象下的ajax、download、imageCache等网络相关的方法不受ATS配置影响(使用的是更底层的CFNetwork框架),可以直接访问非https内容。同时,mam、mcm、push等云服务模块也不受影响。
2、使用openWin、openFrame等方法加载远程http页面时(也包括网页里面加载的图片、资源等),需要将NSAllowsArbitraryLoads设置为YES,或者在NSExceptionDomains字段中为服务器地址开放http,否则将无法加载。
3、若使用WKWebView来加载本地html资源,需要将NSAllowsArbitraryLoads设置为YES,或者在NSExceptionDomains字段中为localhost开放http,否则无法加载。
4、使用WiFi真机预览时,需要将NSAllowsArbitraryLoads设置为YES,或者在NSExceptionDomains字段中为开发工具服务器地址开放http,否则无法正常使用。WiFi真机同步不受影响。
5、若使用第三方sdk模块不支持https,则可能需要将NSAllowsArbitraryLoads设置为YES,或者在NSExceptionDomains字段中为sdk服务器地址开放http,具体可以参照模块文档上面的说明。
|
|