MKTileOverlay not displayed on iOS 14 device, but on iOS 14 Simulator. Only with canReplaceMapContent set to YES it will display on devices.

I have an standard Open Street Map Overlay implemented. It works perfect on the Simulator and when I set explicitly canReplaceMapContent to YES on the overlay. If I set it to NO, it will not display on any iOS 14 device. iOS 13 devices were able to display it.

I develop the app in Objective C, the overlay was working for many iOS releases before.

Standard MKTileOverlay, standard URL tile.openstreetmap.org:
Code Block
_tileOverlay = [[MKTileOverlay alloc] initWithURLTemplate:@"https://<OSM URL>/{z}/{x}/{y}.png"];
_tileOverlay.canReplaceMapContent = NO;
[_mapView addOverlay:_tileOverlay level:MKOverlayLevelAboveLabels];


Standard MKTileOverlayRenderer:
Code Block
- (MKOverlayRenderer *)mapView:(MKMapView *)mapView rendererForOverlay:(id<MKOverlay>)overlay {
if ([overlay isKindOfClass:[MKTileOverlay class]]) {
return [[MKTileOverlayRenderer alloc] initWithOverlay:overlay];
}


Having to set canReplaceMapContent to YES on the tile overlay leads to some flickering, which would be easy to avoid setting it to NO, but setting NO leads to only grey tiles, resp. no tiles drawn at all.

Any ideas?
Have you found a solution to this problem? I observe a similar behavior. However on my device (iPhone 8 with iOS 14.4) the tiles only appear when canReplaceMapContent is set to false. In addition to that on zoom levels around 8 the tiles do not appear or just a couple of them. Furthermore the map has to be touched and moved a little bit to trigger the loading of the tiles. With iOS 13 everything was working fine, with iOS 14 the code is working in the simulator but not on a physical device.
Similar issue here, but a it different behavior, setting the canReplaceMapContents = YES works fine in the simulator (iOS14.4) but on a device with 14.4 it does not. Tested is several times and the same result. My tile server seems to be in good condition so that should keep it out of the equation.
I've got the same problem with test tiles loaded into my bundle.
But I just noticed that the issue occurs when the map view is set in satellite mode. If I switch my map view in standard mode (mapView.mapType = .standard) it works on my device (iOS 14.4)
You can try this if you want to work around this bug.

Could you please try with the latest iOS 15 beta build and if the issue still persists please file a report, including a simple runnable project that demonstrates the issue, via Feedback Assistant (https://feedbackassistant.apple.com/).

This is still a problem in iOS 15.3.1.
I can however confirm, that the workaround mentioned by Nicolas V is working (mapView.mapType = .standard).

MKTileOverlay not displayed on iOS 14 device, but on iOS 14 Simulator. Only with canReplaceMapContent set to YES it will display on devices.
 
 
Q