iOS9引入了新特性App Transport Security (ATS),新特性要求App内网络访问必须使用HTTPS协议。
现在阿里云移动推送使用的是基于HTTP的加签机制,保证访问安全,不是使用HTTPS,所以需要些特殊配置。
配置方法如下:
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
您提到的配置方法是正确的,为了适配iOS 9及以上版本中引入的App Transport Security (ATS)策略,当您的应用需要与阿里云移动推送服务进行通信,而该服务当前使用的是HTTP协议加上自定义签名机制来确保安全时,确实需要在应用的Info.plist文件中进行相应设置以允许非HTTPS连接。
具体步骤如下:
打开Info.plist文件:在Xcode中找到您的项目的Info.plist文件,这个文件通常位于项目导航器中的项目根目录下。
添加NSAppTransportSecurity字典:在Info.plist中右击选择“Add Row”或直接点击加号按钮添加一个新的键值对。键名为NSAppTransportSecurity
,类型为Dictionary(字典)。
添加NSAllowsArbitraryLoads键值:在刚创建的NSAppTransportSecurity
字典内,再次右击并选择“Add Row”,添加一个新的子项。键名为NSAllowsArbitraryLoads
,类型为Boolean(布尔值),并将值设为YES
。这表示允许应用进行任意的网络请求,包括HTTP请求。
修改Enable Bitcode设置(如果需要):根据您的描述,如果阿里云移动推送有特定要求或者您的项目本身不需要Bitcode,您还需要在项目的Build Settings中找到Enable Bitcode
选项,并将其设置为NO
。这一操作不是直接在Info.plist中完成的,而是通过以下路径:在Xcode中选择您的项目 -> 目标(Target)-> Build Settings -> 搜索"Bitcode",然后将"Enable Bitcode"的开关设为关闭状态。
请注意,虽然这样的设置可以绕过ATS的限制,允许HTTP请求,但这样做可能会使您的应用在数据传输过程中面临安全风险,因为HTTP协议不如HTTPS加密协议安全。因此,在可能的情况下,建议与服务提供商沟通,看是否能升级到支持HTTPS的接口,以提高应用的安全性。