我的应用中的电子邮件提交无法联系服务器,建议?

时间:2015-10-20 15:44:05

标签: ios ios9

首次启动我正在处理的应用时,它会询问您是否要输入电子邮件。它在iOS9和Xcode 7之后一直运行良好(当我们发现它不再工作时)。奇怪的是...电子邮件提交在现在的应用程序上工作正常,但在测试飞行,模拟器和新版本进行审查时它表示它无法连接到服务器时你试着提交你的电子邮件。打印到控制台的错误消息是:

2015-10-20 11:35:50.011 ACT TestBank InApp[987:38253] emailPostURL: http://www.allenprep.com/tbupdate/emails.php?email=test@gmail.com&exam=ACT&needcode=0
2015-10-20 11:35:50.024 ACT TestBank InApp[987:38469] App Transport Security has blocked a cleartext HTTP (http://) resource load since it is insecure. Temporary exceptions can be configured via your app's Info.plist file.
2015-10-20 11:35:50.026 ACT TestBank InApp[987:38253] Failed connection

我甚至在几个月前又回到了项目的旧版本,当我提交电子邮件时仍然无法连接,就像我说我还没有触及任何与此相关的代码。 ..刚停止工作。

enter image description here

1 个答案:

答案 0 :(得分:2)

  

App Transport Security已阻止明文HTTP(http://)

iOS 9引入了一项新的安全功能,如果您不使用HTTPS确保应用程序的邮件发送安全,是否有任何警告或错误,并且您是否安全地发送信息,则会引发错误?听起来这就是你问题的原因,同样的事情发生在我身上。

要解决此问题,请将域添加到plist文件中。将其作为源代码打开,然后右键单击并添加:

key>NSAppTransportSecurity</key>
<dict>
  <key>NSExceptionDomains</key>
  <dict>
    <key>yourserver.com</key>
    <dict>
      <!--Include to allow subdomains-->
      <key>NSIncludesSubdomains</key>
      <true/>
      <!--Include to allow HTTP requests-->
      <key>NSTemporaryExceptionAllowsInsecureHTTPLoads</key>
      <true/>
      <!--Include to specify minimum TLS version-->
      <key>NSTemporaryExceptionMinimumTLSVersion</key>
      <string>TLSv1.1</string>
    </dict>
  </dict>
</dict>

或者你可以一起关掉它:

<key>NSAppTransportSecurity</key>
<dict>
  <!--Include to allow all connections (DANGER)-->
  <key>NSAllowsArbitraryLoads</key>
      <true/>
</dict>