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

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
25
1d
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
87
2d
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
43
3d
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
269
6d
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
153
1w
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
243
1w
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
52
1w
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
324
2w
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
0
183
2w
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
123
2w
NINearbyObject.direction always nil on iPhone 15 (U2) with NINearbyAccessoryConfiguration — intentional or bug?
I'm developing a spatial tracking app using a Qorvo DWM3001CDK (MFi-certified UWB accessory) with NINearbyAccessoryConfiguration. On iPhone 15 (iOS 26.3.1, second-generation UWB chip): supportsDirectionMeasurement = false NINearbyObject.direction is always nil NINearbyObject.distance works correctly (~63Hz) Camera Assistance (isCameraAssistanceEnabled=true) provides horizontalAngle only after ARKit convergence (~10s), and only while the phone is moving On iPhone 12/13 (first-generation UWB chip), direction works correctly with the same accessory. My questions: Is the removal of instantaneous direction measurement for third-party accessories on second-generation UWB devices intentional? Or is this a regression that will be fixed in a future iOS update? If intentional, what is the recommended approach for apps that need real-time direction to a UWB accessory on iPhone 15/16? Camera Assistance requires phone movement and only works with stationary targets, which doesn't work for our use case (tracking a moving object with the phone mounted on a gimbal). Are there any plans to provide instantaneous direction measurement for NINearbyAccessoryConfiguration on second-generation UWB devices? Environment: iPhone 15, iOS 26.3.1 Qorvo DWM3001CDK (FiRa + MFi certified) NINearbyAccessoryConfiguration with isCameraAssistanceEnabled=true Shared ARSession Thank you.
1
2
241
3w
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
215
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
159
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
311
Apr ’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
424
Activity
4h
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
6
Boosts
0
Views
424
Activity
9h
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
189
Activity
10h
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
25
Activity
1d
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
87
Activity
2d
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
43
Activity
3d
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
269
Activity
6d
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
153
Activity
1w
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
243
Activity
1w
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
52
Activity
1w
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
324
Activity
2w
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
0
Views
183
Activity
2w
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.4k
Activity
2w
kCLErrorDomain Code=1 location failure even with full location permission granted
I'm facing a persistent location error on real iOS device: Error Domain=kCLErrorDomain Code=1 The operation couldn’t be completed. (kCLErrorDomain error 1.)
Replies
0
Boosts
0
Views
208
Activity
2w
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
123
Activity
2w
26.4.2 CoreLocation changes
It seems that with the latest update ellipsoidalAltitude of the CLLocation is always 0.0 where it had the correct value before. Also, velocity used to be -1 when not moving. The regular altitude still has sensible values. Did anybody else experience this ? Rgds Lob
Replies
0
Boosts
0
Views
119
Activity
2w
NINearbyObject.direction always nil on iPhone 15 (U2) with NINearbyAccessoryConfiguration — intentional or bug?
I'm developing a spatial tracking app using a Qorvo DWM3001CDK (MFi-certified UWB accessory) with NINearbyAccessoryConfiguration. On iPhone 15 (iOS 26.3.1, second-generation UWB chip): supportsDirectionMeasurement = false NINearbyObject.direction is always nil NINearbyObject.distance works correctly (~63Hz) Camera Assistance (isCameraAssistanceEnabled=true) provides horizontalAngle only after ARKit convergence (~10s), and only while the phone is moving On iPhone 12/13 (first-generation UWB chip), direction works correctly with the same accessory. My questions: Is the removal of instantaneous direction measurement for third-party accessories on second-generation UWB devices intentional? Or is this a regression that will be fixed in a future iOS update? If intentional, what is the recommended approach for apps that need real-time direction to a UWB accessory on iPhone 15/16? Camera Assistance requires phone movement and only works with stationary targets, which doesn't work for our use case (tracking a moving object with the phone mounted on a gimbal). Are there any plans to provide instantaneous direction measurement for NINearbyAccessoryConfiguration on second-generation UWB devices? Environment: iPhone 15, iOS 26.3.1 Qorvo DWM3001CDK (FiRa + MFi certified) NINearbyAccessoryConfiguration with isCameraAssistanceEnabled=true Shared ARSession Thank you.
Replies
1
Boosts
2
Views
241
Activity
3w
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
215
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
159
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
311
Activity
Apr ’26