我有一个本地Web服务器,我使用运行
Windows 8.1的笔记本通过Maven使用startServer.bat命令运行.我在iPad上安装了一个应用程序,它使用需要与此服务器通信的TestFlight.我使用
Android平板电脑作为互联网访问的移动热点.用于本地服务器的端口是8080.
自从我尝试登录到应用程序后,它就会出错:
“我们无法与服务器通信,请检查您的连接,然后重试.”
我已经为防火墙添加了规则,禁用了防火墙以及笔记本电脑上的任何安全性.当我尝试登录时,有一些项目记录在cmd中,我可以看到从应用程序中检索的信息,即用户名和密码.但是,似乎信息似乎没有被发送回应用程序,即登录成功,您现在可以继续.我还读到了关于Windows 8.1阻止Metro应用程序的问题,这里会发生类似的事情吗?
我已经确保IP在笔记本电脑上是静态的,设备使用相同的网络,甚至看过使用代理 – 我尝试过使用Charles Proxy和CCProxy,但他们使用了太多的内存,然后构建失败,因为超时所以无论如何我都无法测试任何东西.当我在Safari中访问服务器的IP(即xxx.xxx.xx.xx:8080)时它确实连接(虽然我无法确认它是否表现为100%),但iPad应用程序从未成功登录.记录此行后始终显示错误:
有人可以帮助我解决这个问题,或至少指导我看看如何正确设置它(以便我可以检查我做了什么)或如何克服这个问题.
编辑:我只能通过Test Flight访问该应用程序,但我已与主管开发人员确认应用程序端已考虑App Transport Security.我现在比以往任何时候都更有感觉阻止了Windows端的传出通信.如果我打开类似启用appcontainer环回程序的内容,则会显示错误,指出无法收集appcontainer信息并询问防火墙是否已打开 – 这绝对不是.你或许知道是什么原因引起的吗?升级到Windows 10可能会有所帮助吗?
最佳答案 我打赌你被iOS 9中的App Transport Security阻止了.尝试在你的iPad应用程序的Info.plist文件中添加适当的例外.
首先,尝试添加此键/值对:
<key>NSAppTransportSecurity</key>
<dict>
<!--Include to allow all connections (DANGER)-->
<key>NSAllowsArbitraryLoads</key>
<true/>
</dict>
看看事情是否有效.如果您想向公众发布此应用,我建议您使用基于域的例外. More information can be found in this tutorial.