ChatGPT解决这个技术问题 Extra ChatGPT

如何从 iPhone 模拟器访问主机本身

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

如何/我可以从 iPhone 模拟器访问主机的网络(在这种情况下为 http)?

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

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

j
jaminguy

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


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

在 swift 5 中只需调用:

http://localhost:<port>/file_path 

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

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

否则会发生此错误。

Cannot start load of Task <xx-xx>.<x> since it does not conform to ATS policy.


这个答案会起作用,但这不是解决这个问题的好方法。 Apple 强烈不鼓励开发人员随意加载 url,如果您使用这种方法,您的应用程序将不会被商店接受。请参阅此答案 stackoverflow.com/questions/31254725/…,了解如何正确地将应用程序中的特定域列入白名单
对,只在开发中使用这种方法。