ios - 如何让 iPad 应用程序与 Windows 8 笔记本上的本地服务器通信

标签 ios ipad webserver windows-8.1

我有一个本地 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 应用程序从未成功登录。记录此行后始终显示错误: enter image description here

有人可以帮助我解决这个问题,或者至少指导我了解如何正确设置它(以便我可以检查我做了什么)或如何克服这个问题.

编辑:我只能通过 Test Flight 访问该应用程序,但我已与首席开发人员确认应用程序传输安全性已在应用程序方面得到考虑。我现在比以往任何时候都更觉得有什么东西在阻止 Windows 端的传出通信。如果我打开诸如启用应用容器环回程序之类的东西,则会显示一条错误消息,提示无法收集应用容器信息,并询问防火墙是否打开——它肯定没有打开。您可能知道是什么原因造成的吗?升级到 Windows 10 可能会有帮助吗?

最佳答案

我敢打赌,您会被 iOS 9 附带的 App Transport Security 阻止。尝试将适当的异常(exception)添加到 iPad 应用程序的 Info.plist 文件中。

首先,尝试添加这个键/值对:

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

然后看看是否一切正常。如果您想向公众发布此应用程序,我建议您使用基于域的异常(exception)。 More information can be found in this tutorial .

关于ios - 如何让 iPad 应用程序与 Windows 8 笔记本上的本地服务器通信,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33746991/

相关文章:

ios - Swift TableView in ViewController In Navigation VC in Tab Bar : Cells won't populate with data from list

ios - 我可以在不提供.app路径的情况下使用appium启动安装在iPhone上的应用程序吗

objective-c - 自动将 View 放置在下一个逻辑位置(如布局管理器)

iphone - 按下按钮时

ios - 使用链接隐藏/显示 UIToolbar/Navbar

iphone - ASIDownLoadCache 不起作用

python - python web服务器如何克服GIL

android - 通过解析 WebService 返回的 JSON 来验证用户

http - 限制网络服务器响应 GET 请求可以返回的数据长度

ios - 错误?读取 IBAction 按钮内的变量