Maps & Location

RSS for tag

Learn how to integrate MapKit and Core Location to unlock the power of location-based features in your app.

Maps & Location Documentation

Posts under Maps & Location subtopic

Post

Replies

Boosts

Views

Activity

WeatherKit always fails with WDSJWTAuthenticatorServiceListener error 2 (JWT token) despite correct entitlement & capability
WeatherKit's weather(for:) always fails on both a real device (iPhone, iOS 26) and the Simulator. The error is: WeatherDaemon.WDSJWTAuthenticatorServiceListener.Errors error 2 Device console shows: [AuthService] Failed to generate jwt token for: com.apple.weatherkit.authservice with error: ...Errors Code=2 [WeatherService] Encountered an error when fetching weather data subset ... Code=2 The network reaches weatherkit.apple.com, but JWT token generation fails. What I have already verified (so this does NOT look like a project misconfig): WeatherKit capability is enabled on the App ID (explicit App ID, not wildcard), enabled over a week ago. The signed app binary AND the embedded provisioning profile both contain com.apple.developer.weatherkit = true (verified with codesign -d --entitlements and security cms -D). I removed and re-added the WeatherKit capability and let Xcode regenerate the provisioning profile. No change. Apple Developer Program membership and all agreements are active; the app is registered in App Store Connect. Device is signed into an Apple Account, date/time is automatic, no VPN / iCloud Private Relay / Lockdown Mode. Bundle ID: com.hiroaki.pukapuka Team ID: C7ZK5K3WFA Since every entitlement/capability/account setting is correct, the JWT auth failure (error 2) appears to be server-side. How can I get the WeatherKit service provisioning for this app investigated? (Apple Developer Support case: 102905491144) Any guidance appreciated.
1
0
116
3w
CLMonitor.init crash - same signature as thread 771001, but NOT initialized at library load time
We're experiencing the same CLMonitor.init crash described in thread 771001, but our initialization timing is different from the original poster's - we do NOT initialize at library load time or during didFinishLaunchingWithOptions. Our CLMonitor is created lazily as a singleton on first access, after UIApplicationMain() has completed. Our setup: iOS 17+ deployment target, Swift 6, strict concurrency CLMonitor is created as a singleton, lazily, on first access — triggered by either a location update (recentering the geofence via setFence) or the geofence event loop starting when the app enters background (didEnterBackground -> startGeofenceMonitoring) We use one CLMonitor.CircularGeographicCondition for geofencing (exit detection only) The CLMonitor singleton is @MainActor-isolated What we've tried: Pinned the Task that creates CLMonitor to @MainActor (Task { @MainActor in await CLMonitor("GeofenceMonitor") }). This didn't help - the crash still occurs because CLMonitor.init itself executes on the cooperative thread pool regardless of the calling task's actor isolation. Our current code: extension CLMonitor { @MainActor static var geofenceMonitor: CLMonitor { get async { @MainActor struct Static { static var task: Task<CLMonitor, Never>? } if let task = Static.task { return await task.value } let task = Task { @MainActor in await CLMonitor("GeofenceMonitor") } Static.task = task return await task.value } } } Questions: Since the crash is entirely inside CLMonitor.init's internal synchronous dispatch to the CoreLocation shared queue, and there doesn't appear to be a Swift-level way to control which thread the ObjC-bridged initializer executes on - is there a recommended workaround? Would migrating to the deprecated CLLocationManager.startMonitoring(for: CLCircularRegion) API avoid this crash path entirely? Our use case is simple (one circular geofence, exit-only detection) and we'd prefer a stable solution while this issue is being investigated. Is this a known framework issue being tracked internally? Should we file a Feedback for it? 2026-05-01_02-03-18.8762_-0500-6a1f312b81e187d820d5a2e60ab9368178a6c1e8.crash
0
0
156
May ’26
iOS 26 — significant location changes & region monitoring no longer relaunching terminated apps
I'm observing significant location changes & region monitoring no longer relaunching terminated apps on iOS 26. Configuration: Deployment target: iOS 17, tested on iOS 26.4.2 UIBackgroundModes: location NSLocationAlwaysAndWhenInUseUsageDescription granted (authorizationStatus = .authorizedAlways) allowsBackgroundLocationUpdates = true Using legacy APIs: startMonitoringSignificantLocationChanges() and startMonitoring(for: CLCircularRegion) NSLocationRequireExplicitServiceSession key is NOT set (relying on implicit service session) Data logged into UserDefaults Observed behavior on iOS 26.4.2: Scenario A — app suspended in background (not force-quit): Both significant location changes and CLCircularRegion exit events deliver reliably for the entire trip. didUpdateLocations and didExitRegion fire as expected with appState = .background. Scenario B — app force-quit by user from App Switcher: Over a 30km / 1-hour drive crossing many SLC distance thresholds and many 2km region boundaries, the app is never relaunched. application(_:didFinishLaunchingWithOptions:) is never called with UIApplicationLaunchOptionsLocationKey. No background delegate callbacks fire. The same code on iOS 18 and earlier did relaunch the app from force-quit via SLC. Questions: Is the iOS 26 behavior in Scenario B intentional — i.e., has Apple tightened enforcement of the documented "user-terminated apps do not receive SLC until reopened/rebooted" policy? Does this enforcement now also cover region monitoring (CLCircularRegion and CLMonitor), as our test indicates? If intentional, is there any supported API path that allows a Pro location-aware app to be relaunched after force-quit WITHOUT displaying the persistent location indicator (blue arrow / pill)? CLBackgroundActivitySession appears to always show the indicator.
0
0
297
May ’26
Siri does not recognize my third-party navigation app as a navigation target
I am developing an iOS 26+ navigation app. The app has the default navigation entitlement, MKDirectionsModeCar, MKDirectionsRequest / com.apple.maps.directionsrequest handling, a routing coverage file, phone navigation, CarPlay navigation, and CarPlay Dashboard support. However, when the user says “Navigate to [insert city/place/address] using [name of app],” Siri opens Apple Maps instead. My app receives no URL event, no MKDirections.Request, no App Intent event, and no CarPlay scene URL event. I found a related thread here: https://developer.apple.com/forums/thread/759653. I followed the recommendation there and filed Feedback Assistant enhancement request FB22804661. Please let me know if you need any additional information from me.
0
0
174
May ’26
Lifecycle and Usage of CLServiceSession after the app is terminated
Hi, I am creating a Driving Behaviour Monitoring app in which I range beacons and I require location updates in foreground, background and in terminated state all the time. I am using CLServiceSession with "Always Authorisation" to get location events. I create CLServiceSession object in the foreground and start monitoring driving and then re-create it when the app is relaunched after termination. Doing this works fine. But sometimes when app is terminated and is not opened again, the app runs on its own even when the device is stationary ( I can see the app is using Location in the Control Centre) and after that Location updates are not received and I am not able to track the driving behaviour. I tried to add diagnostics to know the cause and found "Insufficiently In Use" and then "Service Session Required" in the diagnostics. It would be of great help if the proper usage of CLServiceSession is provided. Important Question: When does the CLServiceSession gets invalidated or destroyed that was created when the app was in foreground ? What happens to the CLServiceSession which was created in the foreground if the app is not opened for long duration, let's say a day or two?
2
0
510
May ’26
Balearic Islands
I would like to report a persistent Apple Maps data issue affecting the Spanish (Spain) version of Apple Maps, especially in the Balearic Islands. Apple Maps is displaying several official place names incorrectly, including municipalities, towns, neighbourhoods and local geographic names. In some cases, Apple Maps also shows duplicated or non-existent neighbourhoods, or classifies neighbourhoods incorrectly as towns/cities. The problem is not isolated to one place. It affects several areas of the Balearic Islands, particularly Mallorca and Menorca. Some examples include incorrect or outdated forms such as Mahon / Mahón instead of Maó, Ciudadela instead of Ciutadella de Menorca, and other place names that do not match the official names used by Spanish geographic authorities. These names should follow official geographic sources such as the Instituto Geográfico Nacional (IGN) and the official cartographic data of the Balearic Islands. The issue appears specifically in the Spanish (Spain) version of Apple Maps. I have tried to report these errors many times using the built-in “Report an Issue” function in Apple Maps, including official references and screenshots. However, the reports are repeatedly rejected with the same generic response: “The specific change could not be made.” This reporting function does not seem to work properly for different types of map data. It fails not only for official city and town names, but also for neighbourhoods, duplicated or non-existent areas, and POIs. Even when the correction is supported by official geographic sources or clear local evidence, the reports are rejected without a useful explanation or a real review process.
8
0
273
May ’26
CarPlay Display Issue: Missing Images After Extended Navigation
I am experiencing a persistent issue with my CarPlay application where images rendered within the CarPlay Template interface disappear after the application has been used for an extended period, typically during prolonged navigation. Images used directly within the CarPlay Template framework disappear. In the attached image showing the issue (IMG_1022.PNG), you can see that the icons for 'parking', 'gasstation', 'conveniencestore', and 'favoritespot' are missing. The side bar icons (car, battery, etc.) remain visible, and the text labels are present, but the Template-specific images/icons vanish. Problem Description Images displayed on a custom UIViewController remain visible. Some of our screens integrate a UIViewController (e.g., for map display), and any images rendered on that view controller (not the template itself) continue to display correctly without issue. Example Images IMG_1021.PNG (Normal/Correct Display): This image shows the SearchMenu screen with all icons displayed correctly next to their respective labels ('word', 'home', 'route', 'history', 'parking', 'gasstation', 'conveniencestore', 'favoritespot'). IMG_1022.PNG (Problem State): This image shows the same screen after prolonged use, where the icons next to 'parking', 'gasstation', 'conveniencestore', and 'favoritespot' have disappeared, leaving only the text labels. Question Has anyone encountered a similar issue? This seems to be a rendering or resource management problem specific to images within the CarPlay Template components when the application runs for an extended duration.
2
0
398
May ’26
Bug: Business name displayed incorrectly only in Location Share Preview (Apple Maps Metadata issue)
Hi everyone, I’m facing a very specific issue with our business location on Apple Maps. In the Apple Business Connect dashboard, our name is correctly set as "ANLOG Lojistik". It also appears correctly within the Apple Maps app itself. However, when we share the location via WhatsApp or iMessage, the "Preview Card" (Metadata) displays the name as "Anlog LojİStİK". It seems like a character rendering bug (specifically with Turkish character case sensitivity). Even standard characters like 'S' and 'K' are being forced into uppercase randomly. When you click the link, it opens correctly in Apple Maps, but the preview remains broken. Apple Support says "it's a 3rd party app issue," but this happens because the LPMetadataProvider fetches this specific data from Apple servers. Has anyone experienced a metadata sync/cache issue like this before? How can we force Apple to refresh the "Place Card" preview data?
0
0
168
May ’26
MapKit JS quota limits
Hello, I’m planning to use MapKit JS for a production web/mobile application and I’m trying to better understand the quota limits and pricing model. From the documentation, I understand that MapKit JS provides a free daily limit of: 250,000 map views 25,000 service calls per Apple Developer Program membership. However, I’m not clear about what exactly happens if these limits are exceeded. My questions: If my application exceeds 250,000 map views or 25,000 service calls in a day, what happens? Will the API simply start returning errors (for example HTTP 429), or will Apple automatically charge for additional usage? Is there an official pricing model for usage above the free quota, or do we need to contact Apple to request higher limits? Are these limits strict daily hard limits that should never be exceeded in production? I’m trying to design the architecture of my application and would like to understand whether we must strictly stay below these limits or whether scaling beyond them is possible. Thank you.
2
1
508
May ’26
MapKit JS quota limit architecture decision
Hello, I have a question similar to this post regarding MapKit JS quota limits. I understand that we can request rate limit increases, but it is not a guaranteed increase. My app is rapidly growing. What if Apple decides to not award the limit increase? Then, the directions service of my app will stop working, which would be catastrophic for my company. I need to know if the rate limit increases are guaranteed. I need to decide early on whether to use MapKit JS or another service on, because the more time that passes, the more entangled my code will get with MapKit JS. Can we get some more information on this?
1
1
321
May ’26
MKMapView realistic elevationStyle cannot combine with overlays
I have an MKMapView displaying realistic elevation. As soon as I call "mapView.addOverlays([polylines])" which then trigger: func mapView(_ mapView: MKMapView, rendererFor overlay: MKOverlay) -> MKOverlayRenderer { if let polyline = overlay as? MKPolyline { let view = MKPolylineRenderer(polyline: polyline) // ... return view } return MKOverlayRenderer(overlay: overlay) } The map instantly turn flat until I remove all the overlays.
3
0
237
May ’26
MapKit SwiftUI Map with .standard(elevation: .realistic) falls back to 2D in globe mode, while .hybrid(elevation: .realistic) remains 3D
Overview When using SwiftUI Map with .standard(elevation: .realistic) and a globe-style presentation, the map unexpectedly renders as a flat 2D map instead of a 3D globe / realistic terrain view. In the same view, switching to .hybrid(elevation: .realistic) preserves the expected 3D globe behavior. This appears to be a rendering bug or regression specific to the .standard style under globe mode, not an app-level issue. The issue is reproducible in my app’s competition map screen and has also been reported by other developers online. Steps to Reproduce Create a SwiftUI Map. Bind it to a MapCameraPosition. Apply a standard map style with realistic elevation: .mapStyle(.standard(elevation: .realistic)) Configure the UI so the user can switch between: standard + globe hybrid + globe Zoom out / interact with the map in globe mode. Expected Results Map with .standard(elevation: .realistic) should continue to render with globe / 3D realistic terrain behavior, consistent with realistic elevation support and similar to .hybrid(elevation: .realistic). Actual Results When the map style is .standard(elevation: .realistic) in globe mode, the map falls back to a flat 2D-looking representation. Changing the same map to .hybrid(elevation: .realistic) restores the expected 3D globe rendering. Regression Unknown, but this appears to be unintended behavior because: realistic elevation is intended to provide realistic terrain / 3D map rendering, and there are no overlays in this map configuration that should intentionally force the map into a flat representation. Minimal Relevant Code From My App private enum CompetitionMapMode: String, CaseIterable { case satellite case explore func mapStyle(look: CompetitionMapLook) -> MapStyle { switch self { case .satellite: return .hybrid(elevation: look.elevation) case .explore: return .standard(elevation: look.elevation) } } } private enum CompetitionMapLook: String, CaseIterable { case globe case flat var elevation: MapStyle.Elevation { switch self { case .globe: return .realistic case .flat: return .flat } } } Map(position: $cameraPosition, selection: $selectedMapItemID) { UserAnnotation() ForEach(mapDisplayItems) { item in Annotation( item.title, coordinate: item.coordinate, anchor: .bottom ) { mapAnnotationView(for: item) } .tag(item.id) } } .mapStyle(mapModeSelection.mapStyle(look: mapLookSelection)) Why I Believe This Is a Framework Bug The same Map instance renders correctly in 3D when using: .hybrid(elevation: .realistic) but falls back to 2D with: .standard(elevation: .realistic) under globe mode. This suggests the issue is tied specifically to the .standard rendering path in SwiftUI Map / MapKit, rather than camera state, annotations, or location handling. My map does include annotations, but it does not add overlays that would intentionally flatten realistic terrain. Environment Xcode: Xcode 26.4 (17E192) SDK: SDK Version 26.4 (23E237) Device: iPhone 17 Pro iOS version: iOS 26.5 Beta 2 Reproducibility: Always App type: SwiftUI app using MapKit Map Additional Notes The issue is visible in a production app screen, not only a toy sample. The problem appears style-specific: .standard(elevation: .realistic) → incorrect 2D fallback .hybrid(elevation: .realistic) → expected 3D behavior This makes standard map style unusable for globe presentation in my app.
1
0
346
Apr ’26
Using CLRequireExplicitServiceSession correctly
I found this documentation that instructs you how to use CLServiceSession to defer any accidental/premature locacation permission prompts: https://developer.apple.com/documentation/corelocation/suspending-authorization-requests It says "Add the CLRequireExplicitServiceSession property to your app’s Info.plist file to opt into this control behavior." I pretty much followed this example to a T. It seemed to work, however in some cases I still manage to get a location permission prompt on a fresh install before the part of the onboarding where we'd ask the user for location permissions (with CLServiceSession now). Is there any additional information on using CLRequireExplicitServiceSession than this blurb? Googling brings up nothing. I presumed the property is a BOOL but I'm not even sure of that, as it doesn't show up in Info.plist's autocomplete suggestions and I have to manually set the type.
1
1
276
Apr ’26
MapKit JS 401 Not Authorized (details empty) even with multiple token variants
Hi everyone, I’m troubleshooting a persistent MapKit JS auth issue and would appreciate any advice. I have: Active Apple Developer account/team Maps configuration created and linked Active Maps-enabled signing key Domain-restricted token setup I tested multiple JWT variants: with origin without origin (basic example style) with and without exp exact domain and wildcard domain variants I also tested using a minimal/basic MapKit JS integration and still got the same result. Bootstrap request: `curl -s --compressed -D - \ 'https://cdn.apple-mapkit.com/ma/bootstrap?apiVersion=2&mkjsVersion=5.81.60&poi=1' \ -H 'Authorization: Bearer <JWT>' \ -H 'Origin: https://<my-domain>' \ -H 'Referer: https://<my-domain>/...' Result is always:` HTTP 401 {"error":{"message":"Not Authorized","details":[]}} Important detail: mapkit.core.js loads successfully (HTTP 200) failure happens only on bootstrap auth Has anyone seen this exact behavior with empty details and found what was wrong? Any checklist for hidden misconfiguration points (key linkage, token generation method, domain restriction behavior, propagation timing) would help.
3
4
392
Apr ’26
Maps tokens suddenly stopped working today and now return 401 everywhere
Hi, Our Apple Maps integration has been working normally for years, but starting today, newly created Maps tokens suddenly became unusable. Tokens created from the Apple Developer backend now return 401 Unauthorized everywhere we test them. We can reproduce this in: our own code Apple’s Try Maps Server API page MapKit JS So this does not appear to be limited to our app code. We also tested through a US network entry point to rule out a mainland China network issue, but the result was the same. At the moment, Maps tokens created in the backend seem to be unusable in all cases on our side. Has anyone else seen this today, or is there any known issue affecting Maps token creation or validation? Thanks.
0
1
612
Apr ’26
WeatherKit always fails with WDSJWTAuthenticatorServiceListener error 2 (JWT token) despite correct entitlement & capability
WeatherKit's weather(for:) always fails on both a real device (iPhone, iOS 26) and the Simulator. The error is: WeatherDaemon.WDSJWTAuthenticatorServiceListener.Errors error 2 Device console shows: [AuthService] Failed to generate jwt token for: com.apple.weatherkit.authservice with error: ...Errors Code=2 [WeatherService] Encountered an error when fetching weather data subset ... Code=2 The network reaches weatherkit.apple.com, but JWT token generation fails. What I have already verified (so this does NOT look like a project misconfig): WeatherKit capability is enabled on the App ID (explicit App ID, not wildcard), enabled over a week ago. The signed app binary AND the embedded provisioning profile both contain com.apple.developer.weatherkit = true (verified with codesign -d --entitlements and security cms -D). I removed and re-added the WeatherKit capability and let Xcode regenerate the provisioning profile. No change. Apple Developer Program membership and all agreements are active; the app is registered in App Store Connect. Device is signed into an Apple Account, date/time is automatic, no VPN / iCloud Private Relay / Lockdown Mode. Bundle ID: com.hiroaki.pukapuka Team ID: C7ZK5K3WFA Since every entitlement/capability/account setting is correct, the JWT auth failure (error 2) appears to be server-side. How can I get the WeatherKit service provisioning for this app investigated? (Apple Developer Support case: 102905491144) Any guidance appreciated.
Replies
1
Boosts
0
Views
116
Activity
3w
SwiftUI MapKit
MapKit offers showsTraffic: Bool, which is great for displaying live traffic data on the map. However, MapPolyline sits above it, which makes it quite useless. Is this the expected behaviour?
Replies
7
Boosts
0
Views
659
Activity
May ’26
Stolen device
My iPhone got stolen and am trying to trace it location using find my apple but i couldn't get it. Any other options to trace it
Replies
0
Boosts
0
Views
148
Activity
May ’26
Location Push Service Extension
Does anyone know how long it usually takes for us to hear back from Apple regarding a request for Location Push Service Extension entitlement?
Replies
3
Boosts
0
Views
717
Activity
May ’26
Starting a cycling navigation from another app?
Is there any way to start a cycling navigation in Maps.app from another app? This seems to work with walking and driving directions, but nothing I've tried has gotten it to work with cycling.
Replies
3
Boosts
0
Views
351
Activity
May ’26
CLMonitor.init crash - same signature as thread 771001, but NOT initialized at library load time
We're experiencing the same CLMonitor.init crash described in thread 771001, but our initialization timing is different from the original poster's - we do NOT initialize at library load time or during didFinishLaunchingWithOptions. Our CLMonitor is created lazily as a singleton on first access, after UIApplicationMain() has completed. Our setup: iOS 17+ deployment target, Swift 6, strict concurrency CLMonitor is created as a singleton, lazily, on first access — triggered by either a location update (recentering the geofence via setFence) or the geofence event loop starting when the app enters background (didEnterBackground -> startGeofenceMonitoring) We use one CLMonitor.CircularGeographicCondition for geofencing (exit detection only) The CLMonitor singleton is @MainActor-isolated What we've tried: Pinned the Task that creates CLMonitor to @MainActor (Task { @MainActor in await CLMonitor("GeofenceMonitor") }). This didn't help - the crash still occurs because CLMonitor.init itself executes on the cooperative thread pool regardless of the calling task's actor isolation. Our current code: extension CLMonitor { @MainActor static var geofenceMonitor: CLMonitor { get async { @MainActor struct Static { static var task: Task<CLMonitor, Never>? } if let task = Static.task { return await task.value } let task = Task { @MainActor in await CLMonitor("GeofenceMonitor") } Static.task = task return await task.value } } } Questions: Since the crash is entirely inside CLMonitor.init's internal synchronous dispatch to the CoreLocation shared queue, and there doesn't appear to be a Swift-level way to control which thread the ObjC-bridged initializer executes on - is there a recommended workaround? Would migrating to the deprecated CLLocationManager.startMonitoring(for: CLCircularRegion) API avoid this crash path entirely? Our use case is simple (one circular geofence, exit-only detection) and we'd prefer a stable solution while this issue is being investigated. Is this a known framework issue being tracked internally? Should we file a Feedback for it? 2026-05-01_02-03-18.8762_-0500-6a1f312b81e187d820d5a2e60ab9368178a6c1e8.crash
Replies
0
Boosts
0
Views
156
Activity
May ’26
iOS 26 — significant location changes & region monitoring no longer relaunching terminated apps
I'm observing significant location changes & region monitoring no longer relaunching terminated apps on iOS 26. Configuration: Deployment target: iOS 17, tested on iOS 26.4.2 UIBackgroundModes: location NSLocationAlwaysAndWhenInUseUsageDescription granted (authorizationStatus = .authorizedAlways) allowsBackgroundLocationUpdates = true Using legacy APIs: startMonitoringSignificantLocationChanges() and startMonitoring(for: CLCircularRegion) NSLocationRequireExplicitServiceSession key is NOT set (relying on implicit service session) Data logged into UserDefaults Observed behavior on iOS 26.4.2: Scenario A — app suspended in background (not force-quit): Both significant location changes and CLCircularRegion exit events deliver reliably for the entire trip. didUpdateLocations and didExitRegion fire as expected with appState = .background. Scenario B — app force-quit by user from App Switcher: Over a 30km / 1-hour drive crossing many SLC distance thresholds and many 2km region boundaries, the app is never relaunched. application(_:didFinishLaunchingWithOptions:) is never called with UIApplicationLaunchOptionsLocationKey. No background delegate callbacks fire. The same code on iOS 18 and earlier did relaunch the app from force-quit via SLC. Questions: Is the iOS 26 behavior in Scenario B intentional — i.e., has Apple tightened enforcement of the documented "user-terminated apps do not receive SLC until reopened/rebooted" policy? Does this enforcement now also cover region monitoring (CLCircularRegion and CLMonitor), as our test indicates? If intentional, is there any supported API path that allows a Pro location-aware app to be relaunched after force-quit WITHOUT displaying the persistent location indicator (blue arrow / pill)? CLBackgroundActivitySession appears to always show the indicator.
Replies
0
Boosts
0
Views
297
Activity
May ’26
Siri does not recognize my third-party navigation app as a navigation target
I am developing an iOS 26+ navigation app. The app has the default navigation entitlement, MKDirectionsModeCar, MKDirectionsRequest / com.apple.maps.directionsrequest handling, a routing coverage file, phone navigation, CarPlay navigation, and CarPlay Dashboard support. However, when the user says “Navigate to [insert city/place/address] using [name of app],” Siri opens Apple Maps instead. My app receives no URL event, no MKDirections.Request, no App Intent event, and no CarPlay scene URL event. I found a related thread here: https://developer.apple.com/forums/thread/759653. I followed the recommendation there and filed Feedback Assistant enhancement request FB22804661. Please let me know if you need any additional information from me.
Replies
0
Boosts
0
Views
174
Activity
May ’26
Lifecycle and Usage of CLServiceSession after the app is terminated
Hi, I am creating a Driving Behaviour Monitoring app in which I range beacons and I require location updates in foreground, background and in terminated state all the time. I am using CLServiceSession with "Always Authorisation" to get location events. I create CLServiceSession object in the foreground and start monitoring driving and then re-create it when the app is relaunched after termination. Doing this works fine. But sometimes when app is terminated and is not opened again, the app runs on its own even when the device is stationary ( I can see the app is using Location in the Control Centre) and after that Location updates are not received and I am not able to track the driving behaviour. I tried to add diagnostics to know the cause and found "Insufficiently In Use" and then "Service Session Required" in the diagnostics. It would be of great help if the proper usage of CLServiceSession is provided. Important Question: When does the CLServiceSession gets invalidated or destroyed that was created when the app was in foreground ? What happens to the CLServiceSession which was created in the foreground if the app is not opened for long duration, let's say a day or two?
Replies
2
Boosts
0
Views
510
Activity
May ’26
Balearic Islands
I would like to report a persistent Apple Maps data issue affecting the Spanish (Spain) version of Apple Maps, especially in the Balearic Islands. Apple Maps is displaying several official place names incorrectly, including municipalities, towns, neighbourhoods and local geographic names. In some cases, Apple Maps also shows duplicated or non-existent neighbourhoods, or classifies neighbourhoods incorrectly as towns/cities. The problem is not isolated to one place. It affects several areas of the Balearic Islands, particularly Mallorca and Menorca. Some examples include incorrect or outdated forms such as Mahon / Mahón instead of Maó, Ciudadela instead of Ciutadella de Menorca, and other place names that do not match the official names used by Spanish geographic authorities. These names should follow official geographic sources such as the Instituto Geográfico Nacional (IGN) and the official cartographic data of the Balearic Islands. The issue appears specifically in the Spanish (Spain) version of Apple Maps. I have tried to report these errors many times using the built-in “Report an Issue” function in Apple Maps, including official references and screenshots. However, the reports are repeatedly rejected with the same generic response: “The specific change could not be made.” This reporting function does not seem to work properly for different types of map data. It fails not only for official city and town names, but also for neighbourhoods, duplicated or non-existent areas, and POIs. Even when the correction is supported by official geographic sources or clear local evidence, the reports are rejected without a useful explanation or a real review process.
Replies
8
Boosts
0
Views
273
Activity
May ’26
CarPlay Display Issue: Missing Images After Extended Navigation
I am experiencing a persistent issue with my CarPlay application where images rendered within the CarPlay Template interface disappear after the application has been used for an extended period, typically during prolonged navigation. Images used directly within the CarPlay Template framework disappear. In the attached image showing the issue (IMG_1022.PNG), you can see that the icons for 'parking', 'gasstation', 'conveniencestore', and 'favoritespot' are missing. The side bar icons (car, battery, etc.) remain visible, and the text labels are present, but the Template-specific images/icons vanish. Problem Description Images displayed on a custom UIViewController remain visible. Some of our screens integrate a UIViewController (e.g., for map display), and any images rendered on that view controller (not the template itself) continue to display correctly without issue. Example Images IMG_1021.PNG (Normal/Correct Display): This image shows the SearchMenu screen with all icons displayed correctly next to their respective labels ('word', 'home', 'route', 'history', 'parking', 'gasstation', 'conveniencestore', 'favoritespot'). IMG_1022.PNG (Problem State): This image shows the same screen after prolonged use, where the icons next to 'parking', 'gasstation', 'conveniencestore', and 'favoritespot' have disappeared, leaving only the text labels. Question Has anyone encountered a similar issue? This seems to be a rendering or resource management problem specific to images within the CarPlay Template components when the application runs for an extended duration.
Replies
2
Boosts
0
Views
398
Activity
May ’26
Bug: Business name displayed incorrectly only in Location Share Preview (Apple Maps Metadata issue)
Hi everyone, I’m facing a very specific issue with our business location on Apple Maps. In the Apple Business Connect dashboard, our name is correctly set as "ANLOG Lojistik". It also appears correctly within the Apple Maps app itself. However, when we share the location via WhatsApp or iMessage, the "Preview Card" (Metadata) displays the name as "Anlog LojİStİK". It seems like a character rendering bug (specifically with Turkish character case sensitivity). Even standard characters like 'S' and 'K' are being forced into uppercase randomly. When you click the link, it opens correctly in Apple Maps, but the preview remains broken. Apple Support says "it's a 3rd party app issue," but this happens because the LPMetadataProvider fetches this specific data from Apple servers. Has anyone experienced a metadata sync/cache issue like this before? How can we force Apple to refresh the "Place Card" preview data?
Replies
0
Boosts
0
Views
168
Activity
May ’26
MapKit JS quota limits
Hello, I’m planning to use MapKit JS for a production web/mobile application and I’m trying to better understand the quota limits and pricing model. From the documentation, I understand that MapKit JS provides a free daily limit of: 250,000 map views 25,000 service calls per Apple Developer Program membership. However, I’m not clear about what exactly happens if these limits are exceeded. My questions: If my application exceeds 250,000 map views or 25,000 service calls in a day, what happens? Will the API simply start returning errors (for example HTTP 429), or will Apple automatically charge for additional usage? Is there an official pricing model for usage above the free quota, or do we need to contact Apple to request higher limits? Are these limits strict daily hard limits that should never be exceeded in production? I’m trying to design the architecture of my application and would like to understand whether we must strictly stay below these limits or whether scaling beyond them is possible. Thank you.
Replies
2
Boosts
1
Views
508
Activity
May ’26
MapKit JS quota limit architecture decision
Hello, I have a question similar to this post regarding MapKit JS quota limits. I understand that we can request rate limit increases, but it is not a guaranteed increase. My app is rapidly growing. What if Apple decides to not award the limit increase? Then, the directions service of my app will stop working, which would be catastrophic for my company. I need to know if the rate limit increases are guaranteed. I need to decide early on whether to use MapKit JS or another service on, because the more time that passes, the more entangled my code will get with MapKit JS. Can we get some more information on this?
Replies
1
Boosts
1
Views
321
Activity
May ’26
Is MapKit JS free?
I want to use Apple maps on a site instead of Google maps. Do i need to enroll as a Apple Developer to get access to the MapKit JS? (100 dollars/year)
Replies
3
Boosts
0
Views
2.5k
Activity
May ’26
MKMapView realistic elevationStyle cannot combine with overlays
I have an MKMapView displaying realistic elevation. As soon as I call "mapView.addOverlays([polylines])" which then trigger: func mapView(_ mapView: MKMapView, rendererFor overlay: MKOverlay) -> MKOverlayRenderer { if let polyline = overlay as? MKPolyline { let view = MKPolylineRenderer(polyline: polyline) // ... return view } return MKOverlayRenderer(overlay: overlay) } The map instantly turn flat until I remove all the overlays.
Replies
3
Boosts
0
Views
237
Activity
May ’26
MapKit SwiftUI Map with .standard(elevation: .realistic) falls back to 2D in globe mode, while .hybrid(elevation: .realistic) remains 3D
Overview When using SwiftUI Map with .standard(elevation: .realistic) and a globe-style presentation, the map unexpectedly renders as a flat 2D map instead of a 3D globe / realistic terrain view. In the same view, switching to .hybrid(elevation: .realistic) preserves the expected 3D globe behavior. This appears to be a rendering bug or regression specific to the .standard style under globe mode, not an app-level issue. The issue is reproducible in my app’s competition map screen and has also been reported by other developers online. Steps to Reproduce Create a SwiftUI Map. Bind it to a MapCameraPosition. Apply a standard map style with realistic elevation: .mapStyle(.standard(elevation: .realistic)) Configure the UI so the user can switch between: standard + globe hybrid + globe Zoom out / interact with the map in globe mode. Expected Results Map with .standard(elevation: .realistic) should continue to render with globe / 3D realistic terrain behavior, consistent with realistic elevation support and similar to .hybrid(elevation: .realistic). Actual Results When the map style is .standard(elevation: .realistic) in globe mode, the map falls back to a flat 2D-looking representation. Changing the same map to .hybrid(elevation: .realistic) restores the expected 3D globe rendering. Regression Unknown, but this appears to be unintended behavior because: realistic elevation is intended to provide realistic terrain / 3D map rendering, and there are no overlays in this map configuration that should intentionally force the map into a flat representation. Minimal Relevant Code From My App private enum CompetitionMapMode: String, CaseIterable { case satellite case explore func mapStyle(look: CompetitionMapLook) -> MapStyle { switch self { case .satellite: return .hybrid(elevation: look.elevation) case .explore: return .standard(elevation: look.elevation) } } } private enum CompetitionMapLook: String, CaseIterable { case globe case flat var elevation: MapStyle.Elevation { switch self { case .globe: return .realistic case .flat: return .flat } } } Map(position: $cameraPosition, selection: $selectedMapItemID) { UserAnnotation() ForEach(mapDisplayItems) { item in Annotation( item.title, coordinate: item.coordinate, anchor: .bottom ) { mapAnnotationView(for: item) } .tag(item.id) } } .mapStyle(mapModeSelection.mapStyle(look: mapLookSelection)) Why I Believe This Is a Framework Bug The same Map instance renders correctly in 3D when using: .hybrid(elevation: .realistic) but falls back to 2D with: .standard(elevation: .realistic) under globe mode. This suggests the issue is tied specifically to the .standard rendering path in SwiftUI Map / MapKit, rather than camera state, annotations, or location handling. My map does include annotations, but it does not add overlays that would intentionally flatten realistic terrain. Environment Xcode: Xcode 26.4 (17E192) SDK: SDK Version 26.4 (23E237) Device: iPhone 17 Pro iOS version: iOS 26.5 Beta 2 Reproducibility: Always App type: SwiftUI app using MapKit Map Additional Notes The issue is visible in a production app screen, not only a toy sample. The problem appears style-specific: .standard(elevation: .realistic) → incorrect 2D fallback .hybrid(elevation: .realistic) → expected 3D behavior This makes standard map style unusable for globe presentation in my app.
Replies
1
Boosts
0
Views
346
Activity
Apr ’26
Using CLRequireExplicitServiceSession correctly
I found this documentation that instructs you how to use CLServiceSession to defer any accidental/premature locacation permission prompts: https://developer.apple.com/documentation/corelocation/suspending-authorization-requests It says "Add the CLRequireExplicitServiceSession property to your app’s Info.plist file to opt into this control behavior." I pretty much followed this example to a T. It seemed to work, however in some cases I still manage to get a location permission prompt on a fresh install before the part of the onboarding where we'd ask the user for location permissions (with CLServiceSession now). Is there any additional information on using CLRequireExplicitServiceSession than this blurb? Googling brings up nothing. I presumed the property is a BOOL but I'm not even sure of that, as it doesn't show up in Info.plist's autocomplete suggestions and I have to manually set the type.
Replies
1
Boosts
1
Views
276
Activity
Apr ’26
MapKit JS 401 Not Authorized (details empty) even with multiple token variants
Hi everyone, I’m troubleshooting a persistent MapKit JS auth issue and would appreciate any advice. I have: Active Apple Developer account/team Maps configuration created and linked Active Maps-enabled signing key Domain-restricted token setup I tested multiple JWT variants: with origin without origin (basic example style) with and without exp exact domain and wildcard domain variants I also tested using a minimal/basic MapKit JS integration and still got the same result. Bootstrap request: `curl -s --compressed -D - \ 'https://cdn.apple-mapkit.com/ma/bootstrap?apiVersion=2&mkjsVersion=5.81.60&poi=1' \ -H 'Authorization: Bearer <JWT>' \ -H 'Origin: https://<my-domain>' \ -H 'Referer: https://<my-domain>/...' Result is always:` HTTP 401 {"error":{"message":"Not Authorized","details":[]}} Important detail: mapkit.core.js loads successfully (HTTP 200) failure happens only on bootstrap auth Has anyone seen this exact behavior with empty details and found what was wrong? Any checklist for hidden misconfiguration points (key linkage, token generation method, domain restriction behavior, propagation timing) would help.
Replies
3
Boosts
4
Views
392
Activity
Apr ’26
Maps tokens suddenly stopped working today and now return 401 everywhere
Hi, Our Apple Maps integration has been working normally for years, but starting today, newly created Maps tokens suddenly became unusable. Tokens created from the Apple Developer backend now return 401 Unauthorized everywhere we test them. We can reproduce this in: our own code Apple’s Try Maps Server API page MapKit JS So this does not appear to be limited to our app code. We also tested through a US network entry point to rule out a mainland China network issue, but the result was the same. At the moment, Maps tokens created in the backend seem to be unusable in all cases on our side. Has anyone else seen this today, or is there any known issue affecting Maps token creation or validation? Thanks.
Replies
0
Boosts
1
Views
612
Activity
Apr ’26