web-dev-qa-db-ja.com

iOSシミュレーターの場所が機能しない

XCode 5.xのシミュレータでiOSアプリをテストしています。ルートビューは、外部URLをロードするUIWebViewです。外部ページは地理位置情報を要求しますが、シミュレーターで機能させることができません。プロンプトは位置情報を共有しているようですが、外部ページはそれらを受信できません。

  • [デバッグ]> [場所]でカスタムの場所を設定しようとしましたが、何も変わりません。
  • IPhone 3.5やiPadなど、シミュレータで複数のデバイスを試しました。
  • 実際のデバイスにアプリをロードすると、正常に動作します。

何が欠けていますか?

-e

13
emersonthis

役立つヒントについては、@ Farhanに+1してください。これが私の問題を解決したものです:

シミュレータの場所が設定される場所は2つあります。

  • スキーム(Farhanの回答を参照)。
  • シミュレータのデバッグ>ロケーション

スキームのデフォルトの場所設定で遊んでみましたが、うまくいきませんでした。 Mineは現在「なし」に設定されています。これは、提供されている場所データがないことを意味するのか、デフォルトでホストマシンの場所に設定されるのかは不明です。

Debug> Locationの下のシミュレーターでも、noneに設定されていました。いくつかのプリセットを使用してみましたが、それでも機能しませんでした。最終的に機能するようになったのは、「カスタムロケーション」に変更して、自分がいる場所の緯度と経度を入力したためです。そうして初めて、正しく機能し始めました。

この投稿 には、私が説明しているスクリーンショットがいくつかあります。

これは便利なツールです 緯度と経度を取得します。

更新上記で説明した解決策はまだ機能しますが、現在取り組んでいるプロジェクトでは設定が保持されていないようなので、カスタムの場所を再選択し続けるため。これは面倒なので、gpxファイルを使用して新しいプリセットの場所を作成しました。これは本当に簡単であることがわかりました。 このツール を使用してファイルを生成し、ダウンロードするだけです。次に、スキーマを編集するときに、[デフォルトの場所]で[プロジェクトにGPXファイルを追加...]を選択します(ダウンロードしたファイルを選択します)。それでおしまい。何らかの理由で、シミュレータを再実行すると、この設定が記憶されているように見えます。

16
emersonthis

特定のビルドで有効にする必要がある場合があります。そうするために。

Xcodeで、[Product]> [Scheme]> [Edit Scheme ...]に移動します。

[XXXX.app /デバッグの実行]を選択し、[ロケーションシミュレーションを許可]を選択して、デフォルトの場所を選択します。

15
Farhan Patel

私は同じ問題を抱えていました-これを試してください:

シミュレータで位置設定を確認してください。 CMD-Shift-Hを押してアプリを終了し、Settings->Privacyに移動して'While Using the App'を選択します。また、Info.plistNSLocationWhenInUseUsageDescriptionキーを設定する必要があります。

11
Erlend

シミュレーターからアプリを削除します。ハードウェア後のデバッグ/場所/カスタム場所から座標を設定します/シミュレーターを再起動します。

1
erdikanik

XcodeはGPXファイルをサポートしていますが、GPXファイルにはwaypointsを含める必要があることに注意してください。トレースポイントは機能しないため、GPXでは「wpt」タグのみを使用してください。

1
Karsten

私にとっての問題は、実行しているスキームで「Debug Executable」がチェックされなかったことです。これを有効にすると、すべてがロケーションシミュレーションで再び正常に機能し始めました。

0
Andrew K