【问题标题】:How do I access the host machine itself from the iPhone simulator如何从 iPhone 模拟器访问主机本身
【发布时间】:2011-08-29 23:47:17
【问题描述】:

我正在开发一个应用程序,该应用程序连接到网络服务以完成大部分操作。作为捷径,我想在我的机器上运行我的开发服务器的副本。问题是:

我如何/可以从 iPhone 模拟器访问主机的网络(在本例中为 http)?

我正在与应用程序一起开发 Web 服务,因此将它们都放在主机上会很有帮助,然后我可以根据需要提交更改。

【问题讨论】:

  • 您的开发服务器的设置是什么?
  • 您想知道在 iOS SDK 中使用哪些库吗?您应该能够提供 URL 字符串,即“localhost:####/myURL”。

标签: ios iphone ipad


【解决方案1】:

iOS 模拟器使用主机网络,因此您应该能够只使用 localhost 或您的机器 IP 地址,无论您的 Web 服务正在侦听哪个 IP。

【讨论】:

  • 扩展 jaminguy 的答案,MAC OSX 也有一个内置的 Apache 服务器。只需快速谷歌搜索.....
  • 如何知道使用的端口?
  • 端口取决于您的网络服务器设置
  • 是否可以通过 USB 连接的设备执行此操作?
  • @IanWarburton 没有任何单独的设备需要您的计算机 IPv4 地址。 (如果两个设备不在同一个网络上,那就更复杂了)
【解决方案2】:

在 swift 5 中只需调用:

http://localhost:<port>/file_path 

但您需要将此部分添加到项目Info.plist

<key>NSAppTransportSecurity</key>
<dict>
    <key>NSAllowsArbitraryLoads</key>
        <true/>
</dict>  

否则会发生此错误。

Cannot start load of Task &lt;xx-xx&gt;.&lt;x&gt; since it does not conform to ATS policy.

【讨论】:

  • 这个答案会起作用,但这不是解决这个问题的好方法。 Apple 强烈不鼓励开发人员随意加载 url,如果您使用这种方法,您的应用程序将不会被商店接受。请查看此答案stackoverflow.com/questions/31254725/…,了解如何正确地将您的应用中的特定域列入白名单
  • 对,只在开发中使用这种方式。
猜你喜欢
  • 1970-01-01
  • 2013-08-30
  • 1970-01-01
  • 2020-03-27
  • 2012-10-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-09-16
相关资源
最近更新 更多