【Flutter】iOSシミュレーターで位置情報が取得できない解決方法

iOSシミュレーターで位置情報が取得できない!?
Flutterアプリの開発で位置情報を使用したくてlocation: ^8.0.1
のパッケージを使っていたところ、iOSシミュレーターでgetLocation()
した際に、エラーなしでサイレントに失敗する(値が返ってこない)現象が起きました。
final location = Location();
await location.enableBackgroundMode(enable: true);
Timer.periodic(const Duration(seconds: 30), (timer) async {
final currentLocation = await location.getLocation();
print('📍Location: $currentLocation'); // ← このログが出ない
});
getLocation()がiOSで動かない原因
iOSシミュレーターの位置情報設定を「Custom Location…」にしていたことが原因で値が返ってこなかったようです。

iOSシミュレータのLocation設定
iOSシミュレータのLocation設定には、以下があります。
None
設定なし
Custom Location...
必要な緯度と経度の値を挿入して、シミュレーターでカスタムの現在の場所を設定できます。
City Run
人間の走行速度に基づいて、地図上で経路上の位置マーカーをシミュレートでき、ウォーキング/ランニング機能のテストが必要なアプリのテストに非常に役立ちます。
City Bicycle Ride
自転車の走行速度に合わせて、地図上でルート上の位置マーカーをシミュレートでき、サイクリング機能のテストが必要なアプリのテストに非常に役立ちます。
Freeway Drive
走行速度に応じて地図上の位置マーカーをシミュレートでき、運転機能をテストする必要があるアプリのテストに非常に役立ちます。
Apple
ポインターとカメラが米国カリフォルニア州のAppleオフィスに移動します。
まとめ
iOSでカスタム値のgetLocation()
が動作しないのには、シミュレーターもしくはパッケージに問題がありそうです。
公式パッケージのissueではシミュレーターの問題みたいです。
これはおそらく iOS シミュレータの問題のようです。 https://github.com/Lyokone/flutterlocation/issues/955#issuecomment-2381266399
まずは、シミュレーターの位置情報設定を確認してみてください。
Custom Location...を使えると便利なのですが、、、また新しいことが分かったら追記しておきます。
Anycloudでは一緒に働くメンバーを募集しています!
Anycloudは、ユーザーの心を動かす体験を届けることを大切にしています。フルリモート・フルフレックスの環境のもと、ライフスタイルに合わせた働き方を実現しながら挑戦したい方を歓迎します。詳細はこちらをご覧ください。