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


100

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

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

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


您的开发服务器的设置是什么?
尼克·韦弗

您是否想在iOS SDK中使用哪些库?您应该只能够提供URL字符串,即“ localhost:#### / myURL ”。
雅各布·巴纳德

Answers:


132

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


为了扩展jaminguy的答案,MAC OSX还具有内置的Apache服务器。只是做一个快速的谷歌搜索.....
Sid

1
您如何找出使用了哪个端口?
Doidgey 2013年

3
该端口取决于您的Web服务器设置
zambono 2014年

1
是否可以通过USB连接的设备执行此操作?
伊恩·沃伯顿

1
@IanWarburton没有任何单独的设备需要您的计算机的IPv4地址。(如果两个设备不在同一个网络上,那就更复杂了)
cameloper

5

迅速调用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.


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

1
对,只在开发时使用这种方法。
unixeO
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.