I think that the error has thrown when the platforms/ios/ios.json file is conflicting to the config.xml.
To resolve this issue, remove *-Info.plist key and its value in platforms/ios/ios.json and do cordova prepare ios again.
--- adding 17/May/2020 ---
If some plugins has config-file tag for *-Info.plist and config.xml has edit-config tag for *-Info.plist, this error may happen.
In this case, remove platforms/* and plugins/*, and then
cordova platform add ios and cordova prepare again.
(If you do cordova prepare without cordova platform add ios, this error may happen)
There is an existing issue with <edit-config> conflicting with platforms/ios/ios.json when *-Info.plist is already populated in the json file as of Cordova 7.1.0
I have fixed the issue by using <config-file> instead.
Solution:
<config-file target="*-Info.plist" parent="NSLocationWhenInUseUsageDescription">
<string>need location access to find things nearby</string>
</config-file>