集成
https://pub.dev/packages/amap_flutter_location
高德地图
amap_flutter_location: ^3.0.0
![](https://img.haomeiwen.com/i4790087/7db8fbbb4b4e9996.png)
目前最新的还是两年前的3.0.0版本。
文档参考有限,有问题只能自己摸索着解决。
iOS不弹授权弹窗
这个是Flutter通用问题,需要什么加什么。
解决方法:
Podfile文件中添加
post_install do |installer|
installer.pods_project.targets.each do |target|
flutter_additional_ios_build_settings(target)
target.build_configurations.each do |config|
config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = '11.0'
config.build_settings['GCC_PREPROCESSOR_DEFINITIONS']||= [
'$(inherited)',
## dart: PermissionGroup.calendar
# 'PERMISSION_EVENTS=1',
## dart: PermissionGroup.reminders
# 'PERMISSION_REMINDERS=1',
## dart: PermissionGroup.contacts
# 'PERMISSION_CONTACTS=1',
# dart: PermissionGroup.camera
'PERMISSION_CAMERA=1',
## dart: PermissionGroup.microphone
# 'PERMISSION_MICROPHONE=1',
## dart: PermissionGroup.speech
# 'PERMISSION_SPEECH_RECOGNIZER=1',
# dart: PermissionGroup.photos
'PERMISSION_PHOTOS=1',
## dart: [PermissionGroup.location, PermissionGroup.locationAlways, PermissionGroup.locationWhenInUse]
'PERMISSION_LOCATION=1',
## dart: PermissionGroup.notification
# 'PERMISSION_NOTIFICATIONS=1',
## dart: PermissionGroup.mediaLibrary
'PERMISSION_MEDIA_LIBRARY=1',
## dart: PermissionGroup.sensors
# 'PERMISSION_SENSORS=1',
## dart: PermissionGroup.bluetooth
# 'PERMISSION_BLUETOOTH=1',
## dart: PermissionGroup.appTrackingTransparency
# 'PERMISSION_APP_TRACKING_TRANSPARENCY=1',
## dart: PermissionGroup.criticalAlerts
# 'PERMISSION_CRITICAL_ALERTS=1'
]
end
end
end
最严重的:iOS崩溃问题
安卓的还好,运行起来没有什么问题,iOS运行起来就崩溃,这个地方崩溃的:
locManagerWithCall方法,AMapFlutterLocationManager初始化失败。
![](https://img.haomeiwen.com/i4790087/fc45fc403bb75ac2.png)
控制台的报错:
Error Domain=AMapFoundationErrorPrivacyShowUnknow Code=555570 "(null)" UserInfo={info=使用AMapLocationKit SDK 功能前请设置隐私权政策是否弹窗告知用户}
2024-03-26 09:29:02.129413+0800 Runner[473:14712] Error Domain=AMapFoundationErrorPrivacyShowUnknow Code=555570 "(null)" UserInfo={info=使用AMapLocationKit SDK 功能前请设置隐私权政策是否弹窗告知用户}
2024-03-26 09:29:02.129696+0800 Runner[473:14712] [AMapLocationKit]:Error Domain=AMapFoundationErrorPrivacyShowUnknow Code=555570 "(null)" UserInfo={info=使用AMapLocationKit SDK 功能前请设置隐私权政策是否弹窗告知用户}
2024-03-26 09:30:07.476590+0800 Runner[473:14712] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '*** -[__NSDictionaryM setObject:forKey:]: object cannot be nil (key: 1711416542076)'
*** First throw call stack:
(0x1820fdcac 0x19916c758 0x1821f6924 0x182200ce8 0x1820b67dc 0x1002bfa0c 0x1002be8f8 0x1002be7d8 0x10188a050 0x1012f75a4 0x1009fc94c 0x1009fe1c8 0x100a0c8d8 0x1820b97f8 0x1820770f8 0x182089d8c 0x19c1969a0 0x1848bf018 0x18465329c 0x10027872c 0x1008dc190)
libc++abi: terminating with uncaught exception of type NSException
![](https://img.haomeiwen.com/i4790087/282137f9a1917cfd.png)
但是项目的的两个方法都调了:
![](https://img.haomeiwen.com/i4790087/d59798bea3cc76d3.png)
一直还是报这个错误,找了一番发现是插件中AMapFlutterLocationPlugin.m的updatePrivacyStatement方法:
![](https://img.haomeiwen.com/i4790087/e7fac9b27229a66f.png)
下面注释了,放开注释,重新运行就OK了。
网友评论