开发者社区 问答 正文

移动推送 iOS SDK: iOS9的特殊配置在哪里?


iOS9引入了新特性App Transport Security (ATS),新特性要求App内网络访问必须使用HTTPS协议。
现在阿里云移动推送使用的是基于HTTP的加签机制,保证访问安全,不是使用HTTPS,所以需要些特殊配置。
配置方法如下:


  1. 在Info.plist文件中添加关键字:添加NSAppTransportSecurity类型Dictionary,在NSAppTransportSecurity下添加NSAllowsArbitraryLoads类型的Boolean,值设为YES。

  2. Build Settings中的Enable Bitcode关键字需要设置为NO。

展开
收起
猫饭先生 2017-10-24 09:44:04 1424 分享 版权
阿里云 AI 助理回答

您提到的配置方法是正确的,为了适配iOS 9及以上版本中引入的App Transport Security (ATS)策略,当您的应用需要与阿里云移动推送服务进行通信,而该服务当前使用的是HTTP协议加上自定义签名机制来确保安全时,确实需要在应用的Info.plist文件中进行相应设置以允许非HTTPS连接。

具体步骤如下:

  1. 打开Info.plist文件:在Xcode中找到您的项目的Info.plist文件,这个文件通常位于项目导航器中的项目根目录下。

  2. 添加NSAppTransportSecurity字典:在Info.plist中右击选择“Add Row”或直接点击加号按钮添加一个新的键值对。键名为NSAppTransportSecurity,类型为Dictionary(字典)。

  3. 添加NSAllowsArbitraryLoads键值:在刚创建的NSAppTransportSecurity字典内,再次右击并选择“Add Row”,添加一个新的子项。键名为NSAllowsArbitraryLoads,类型为Boolean(布尔值),并将值设为YES。这表示允许应用进行任意的网络请求,包括HTTP请求。

  4. 修改Enable Bitcode设置(如果需要):根据您的描述,如果阿里云移动推送有特定要求或者您的项目本身不需要Bitcode,您还需要在项目的Build Settings中找到Enable Bitcode选项,并将其设置为NO。这一操作不是直接在Info.plist中完成的,而是通过以下路径:在Xcode中选择您的项目 -> 目标(Target)-> Build Settings -> 搜索"Bitcode",然后将"Enable Bitcode"的开关设为关闭状态。

请注意,虽然这样的设置可以绕过ATS的限制,允许HTTP请求,但这样做可能会使您的应用在数据传输过程中面临安全风险,因为HTTP协议不如HTTPS加密协议安全。因此,在可能的情况下,建议与服务提供商沟通,看是否能升级到支持HTTPS的接口,以提高应用的安全性。

有帮助
无帮助
AI 助理回答生成答案可能存在不准确,仅供参考
0 条回答
写回答
取消 提交回答