はじめに
今回Flutterアプリで位置情報を使用するため、Flutter Location Pluginを使用してみたのですが、iOSシミュレータでgetLocation()した際に、エラーなしでサイレントに失敗する(値が返ってこない)エラーに躓いたので、備忘録として記事を書きます。
※Androidシミュレータでは、問題なく動作しました。
エラー原因と解決
iOSシミュレータの位置情報設定をCustom Location...にしていたことが原因で値が返ってこなかったようです。
iOSシミュレータのLocation設定には、「None, Custom Location..., City Run, City Bicycle Ride, Freeway Drive, Apple」があります。
各設定で値が返されるか確認してみたところ、「NoneとCustom Location...」では、値が返されずサイレントエラー、「City Run, City Bicycle Ride, Freeway Drive, Apple」では、値が返されました。
以下のIssuesが参考になりました。
flutterlocationのIssues
まとめ
getLocation()が動作しないのには、シミュレータの設定に問題がありそうです。
Simulator/Features/LocationがNoneまたはCustomになってないか確認してみてください。
自分はCustom Location...を使用したいのですが、解決策がわからないので、一旦は動作する設定にしています。
Custom Location...でも使用できるなどご意見ありましたら、教えていただきたいです。mm