Is the problem that the distance isn't accurate for the provided directions, or that the distance is just different? The exact routing can change the distance. This is why I suggest you really clarify your goal -- why do you need an exact distance to be the same as Apple Maps? What are you trying to achieve? Are you directly providing the exact route to your users? Or are you trying to give your users a reasonable approximation of the distance when using a car without needing the exact turn-by-turn accuracy?
If you're looking at providing direction, compare the route you received with the route in Apple Maps -- the routes may not be identical for the reasons I stated. If what you need is really just an approximate distance, the distance data returned by
calculateETAWithCompletionHandler is a better choice, because it will give you approximate travel time and distance without route-specific accuracy.