I think there is a bug in MapKit when pedestrian directions are requested. The step geometry returned in the route of the MKDirections.Response is "shifted". The attached picture shows an example of the route steps returned for pedestrian directions between two points. The geometry of the steps on iOS15 is on the left, and the expected geometry of the steps is on the right.
The problem are:
The geometry for the first and second steps are single points located at the beginning of the route. In the example, the geometry of the second step should cover the first two points of the route's polyline.
The geometry of the remaining steps are shifted. The steps start and end one point before the expected location on the route polyline.
This only happens on iOS15, and there is no problem on iOS14.
Below is a unit-test to reproduce the bug. The coordinates used in the test correspond to the picture.
MKStepsTests.swift
The unit test pass on iOS14 and failed on iOS15. On line 74, the test will failed on iOS15 because the first and second step of the route have the same geometry.
Due to this bug, our application does not provide the correct instructions on iOS15.