iOS模拟器位置不起作用

21

我正在使用xCode 5.x的模拟器测试一个iOS应用程序。根视图是一个UIWebView,它加载外部URL。外部页面请求地理位置信息,但我无法在模拟器中使其工作。提示框似乎可以共享位置信息,但外部页面无法接收到。

  • 我尝试在Debug > Location...中设置自定义位置,但没有任何变化。
  • 我尝试过多个模拟器设备,如iPhone 3.5和iPad。
  • 如果我在真实设备上加载应用程序,它可以正常工作。

我错过了什么?

-e

9个回答

19

+1 给 @Farhan 的有用提示。以下是解决我的问题的方法:

模拟器位置设置有两个地方:

  • 方案 (参见 Farhan 的答案)。
  • 在模拟器调试 > 位置下

我尝试了在方案中更改默认位置,但不起作用。我的当前设置为 "None",不清楚这是否意味着没有提供位置数据,还是默认为主机机器的位置。

在模拟器调试>位置下,它也设置为没有。我尝试使用一些预设,但仍然不起作用。最终让它开始对我有用的是我将其更改为 "自定义位置" 并输入我所在的纬度和经度。只有这样才能正常工作。

此帖子有一些描述所述内容的有用截图。

这是一个方便的工具,用于获取纬度和经度。

更新 上述解决方案仍然有效,但在我目前正在处理的项目中,似乎不能保留设置,因此我必须不断重新选择自定义位置。这很烦人,所以我使用 gpx 文件创建了一个新的预设位置。结果发现这真的很容易。只需使用 此工具 生成文件并下载。然后在编辑模式时,在默认位置下选择 "将 GPX 文件添加到项目中..." (并选择下载的文件)。就是这样。由于某种原因,每次重新运行模拟器时,这个设置似乎都会被记住。


3
GPX确实有帮助(模拟器记住了小数精度的经纬度),但我的位置仍未显示在地图上。唯一让它起作用的方法是:在第一次启动模拟器后立即选择“调试”>“位置”>“Apple”,蓝点将出现,然后选择“调试”>“位置”>“自定义位置”,然后输入(由于GPX文件,您的正确位置将被记住)。我想您必须先向模拟器展示家的位置;) - Christophe Fondacci
1
天啊……有人知道 @ChristopheFondacci 描述的原因吗?我也遇到了同样的问题。 - Fr4nc3sc0NL

18

您可能需要为您的特定构建启用它。要执行此操作,请按以下步骤进行:

在Xcode中,进入"产品 > 模式 > 编辑模式" 2 - 在运行projectName/调试中

选择"运行XXXX.app / 调试" > 选择"允许位置模拟"并选择默认位置。


2
我检查了一下,“允许位置模拟”已经被选中,值为“无”。我尝试更改为默认位置,但仍然不起作用。 - emersonthis
我可以确认,对我来说,将位置模拟从“无”更改为其他选项对我有用。谢谢。 - Ben Butterworth

14
我也遇到了同样的问题-尝试以下方法:
检查模拟器中的位置设置。按下CMD-Shift-H退出应用程序,进入 设置->隐私并选择'仅在使用应用时'。您还需要在 Info.plist中设置NSLocationWhenInUseUsageDescription密钥。

9
要使用自定义位置(添加自己的纬度/经度坐标),请选择模拟器,转到顶部的选项并选择“功能”选项。 Tap simulator then select these options from the tool bar 一旦您选择了“自定义位置”选项,您就可以在此处输入您的经纬度详细信息。 Enter coordinates here 完成!

2

从模拟器中删除应用程序 在“调试/位置/自定义位置”下设置坐标 在执行“硬件/重启模拟器”之后


2
如果您仍然遇到此问题,请注意这是由iOS模拟器中的一个错误引起的。我已经按照Jim Tierney的答案在“功能>位置>自定义位置…”中更新了自定义位置,但当我重新启动应用程序时,模拟器不考虑新的自定义位置。
要解决此问题,只需在模拟器上打开“地图”应用程序,并通过点击右上角的位置图标来确保它显示您选择的自定义位置。
将其最小化到后台,重新打开您的应用程序,停止应用程序并启动应用程序,现在位置将显示您预期的结果。

1

我也遇到了同样的问题。定位包在 Android 上正常工作,但在 iOS 设备上没有获取到位置信息。所以我通过更改模拟器设置中的位置来解决。

解决方案:

Simulation Bar > Features > Location > Apple (选择此项)

问题已解决!!

现在我可以获得位置数据了。


1

Xcode支持GPX文件,但需要注意的是GPX文件需要包含路标。轨迹点不起作用,因此请确保仅在您的GPX中使用"wpt"标签。


-1
对我来说,问题在于我运行的方案中没有选中“调试可执行文件”。一旦我启用了它,使用位置模拟时一切都恢复正常了。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接