Description
Please check the following before submitting a new issue.
- I have searched the existing issues.
- I have carefully read the documentation and verified I have added the required platform specific configuration.
Please select affected platform(s)
- Android
- iOS
- Linux
- macOS
- Web
- Windows
Steps to reproduce
Implement location tracking using the Geolocator plugin in a Flutter app.
Create functions _getCurrentLocationForIOS and _enableLocationUpdatesForIOS using AppleSettings for iOS.
Call these functions on an iOS device to get the current location and enable continuous location updates.
Observe the type conflict and other errors during runtime.
Expected results
Example: The application should retrieve the current location and enable continuous location updates on iOS devices without any type conflicts or runtime errors.
Actual results
[ERROR:flutter/runtime/dart_vm_initializer.cc(41)] Unhandled Exception: The operation couldn’t be completed. (kCLErrorDomain error 1.)
#0 GeolocatorApple.getPositionStream. (package:geolocator_apple/src/geolocator_apple.dart:188:9)
#1 Stream.handleError. (dart:async/stream.dart:931:16)
#2 _HandleErrorStream._handleError (dart:async/stream_pipe.dart:269:17)
#3 _ForwardingStreamSubscription._handleError (dart:async/stream_pipe.dart:157:13)
#4 _RootZone.runBinaryGuarded (dart:async/zone.dart:1606:10)
#5 _BufferingStreamSubscription._sendError.sendError (dart:async/stream_impl.dart:384:15)
#6 _BufferingStreamSubscription._sendError (dart:async/stream_impl.dart:402:7)
#7 _BufferingStreamSubscription._addError (dart:async/stream_impl.dart:306:7)
#8 _ForwardingStreamSubscription._addError (dart:async/stream_pipe.dart:128:11)
#9 _ForwardingStream._handleError (dart:async/stream_pipe.dart:95:10)
#10 _ForwardingStream<…>
The application encounters a type conflict and crashes with the error: Unhandled Exception: type '(Position) => Null' is not a subtype of type '((Position) => void)?'. The issue appears when using AppleSettings for iOS in the Geolocator plugin. also when the setting location is on alway or while using the app the location puck shows the first time and disappears and gives this error
Code sample
Code sample
[Paste your code here]
Future<void> _getCurrentLocationForIOS() async {
try {
final geolocator.AppleSettings appleLocationSettings = geolocator.AppleSettings(
accuracy: geolocator.LocationAccuracy.bestForNavigation,
activityType: geolocator.ActivityType.fitness,
distanceFilter: 100, // Adjust according to your needs
pauseLocationUpdatesAutomatically: false,
showBackgroundLocationIndicator: true,
allowBackgroundLocationUpdates: true,
);
_currentPosition = await geolocator.Geolocator.getCurrentPosition(
locationSettings: appleLocationSettings,
);
if (!mounted) return;
_mapboxMap.flyTo(
_getCameraOptions(_currentPosition),
MapAnimationOptions(duration: 1000),
);
_updateLocationPuck();
} catch (e) {
print("Error getting current location on iOS: $e");
// Handle the error, for example, by showing an alert to the user.
}
}
void _enableLocationUpdatesForIOS() {
final geolocator.AppleSettings appleLocationSettings = geolocator.AppleSettings(
accuracy: geolocator.LocationAccuracy.bestForNavigation,
activityType: geolocator.ActivityType.fitness,
distanceFilter: 100, // Adjust according to your needs
pauseLocationUpdatesAutomatically:false,
showBackgroundLocationIndicator: true,
allowBackgroundLocationUpdates: true,
);
geolocator.Geolocator.getPositionStream(
locationSettings: appleLocationSettings,
).listen((geolocator.Position position) {
if (!mounted) return;
setState(() {
_currentPosition = position;
_updateLocationPuck();
});
});
}
</details>
### Screenshots or video
<details>
<summary>Screenshots or video demonstration</summary>


<img width="394" alt="Screenshot 2024-08-26 at 3 20 41 PM" src="https://github.com/user-attachments/assets/dbb30237-fc46-4c31-87b7-a893f67230fd">
[Upload media here]
</details>
### Version
13.0.1
### Flutter Doctor output
<details><summary>Doctor output</summary>
flutter doctor -v
[✓] Flutter (Channel stable, 3.22.2, on macOS 14.6.1 23G93 darwin-x64, locale
en-US)
• Flutter version 3.22.2 on channel stable at
/Users/aditiallady/devlopment/flutter
• Upstream repository https://github.com/flutter/flutter.git
• Framework revision 761747bfc5 (3 months ago), 2024-06-05 22:15:13 +0200
• Engine revision edd8546116
• Dart version 3.4.3
• DevTools version 2.34.3
[✓] Android toolchain - develop for Android devices (Android SDK version 34.0.0)
• Android SDK at /Users/aditiallady/Library/Android/sdk
• Platform android-34, build-tools 34.0.0
• Java binary at: /Applications/Android
Studio.app/Contents/jbr/Contents/Home/bin/java
• Java version OpenJDK Runtime Environment (build
17.0.10+0-17.0.10b1087.21-11572160)
• All Android licenses accepted.
[✓] Xcode - develop for iOS and macOS (Xcode 15.4)
• Xcode at /Applications/Xcode.app/Contents/Developer
• Build 15F31d
• CocoaPods version 1.15.2
[✓] Chrome - develop for the web
• Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome
[✓] Android Studio (version 2023.3)
• Android Studio at /Applications/Android Studio.app/Contents
• Flutter plugin can be installed from:
🔨 https://plugins.jetbrains.com/plugin/9212-flutter
• Dart plugin can be installed from:
🔨 https://plugins.jetbrains.com/plugin/6351-dart
• Java version OpenJDK Runtime Environment (build
17.0.10+0-17.0.10b1087.21-11572160)
[✓] VS Code (version 1.92.2)
• VS Code at /Applications/Visual Studio Code.app/Contents
• Flutter extension version 3.94.0
[✓] Connected device (4 available)
• Aditi’s iPhone (mobile) • 00008130-000E21A004298D3A • ios
• iOS 17.5.1 21F90
• iPhone 15 Pro Max (mobile) • 1F14C548-F714-4573-8B73-4DA1E72B59A1 • ios
• com.apple.CoreSimulator.SimRuntime.iOS-17-5 (simulator)
• macOS (desktop) • macos •
darwin-x64 • macOS 14.6.1 23G93 darwin-x64
• Chrome (web) • chrome •
web-javascript • Google Chrome 128.0.6613.84
[✓] Network resources
• All expected network resources are available.
• No issues found!
</details>