dart 在iOS上请求位置时,Flutter应用程序崩溃

ryhaxcpt  于 2023-03-10  发布在  iOS
关注(0)|答案(2)|浏览(168)

我使用的是Geolocator插件版本6.1.7。
当我尝试请求当前位置时,我的应用突然关闭,没有任何异常。调试控制台显示Lost connection to device. Exited (sigterm)
这只发生在iOS(物理设备和模拟器)上。这个功能在Android模拟器和物理设备上都运行良好。
下面是代码:

Future<bool> getLocation(bool refresh) async {
position = await Geolocator.getCurrentPosition();

if (mapPosition == null || refresh) {
  mapPosition = position;
}

return true;

}

getCurrentPosition()函数崩溃。
我已经在Info.plist文件中添加了所需的权限。

<key>NSLocationWhenInUseUsageDescription</key>
<string>Your location is required to show you relevant meals in your area.</string>
<key>NSLocationAlwaysUsageDescription</key>
<string>Your location is required to show you relevant meals in your area.</string>

我是不是漏掉了什么?

编辑:

我已确保该应用已被授予权限。在“设置”中,该位置的权限级别为“使用应用时”。此外,我还确保在“设置”中打开了我的位置。

wz3gfoph

wz3gfoph1#

回答我自己的问题。
我浏览了Info.plist以查找任何异常,并注意到有一个用于后台位置更新的项目。
<key>EnableBackgroundLocationUpdates</key> <true/>
我去掉了这条线,死机的问题也就消失了。
希望这对其他经历类似事情的人有帮助。

esyap4oy

esyap4oy2#

我有一个类似的问题,但我能够解决它添加后台模式权限到我的info.plist文件,就像这样。

<key>UIBackgroundModes</key>
    <array>
        <string>location</string>
    </array>

相关问题