edit-config for ios usage descriptions: doc.find is not a function

Viewed 30493

When using the edit-config tag in config.xml, I get this error on build:

Error: doc.find is not a function

Any ideas?

4 Answers

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>

I have done this with Ionic 3. Working fine now :)

Solution:

ionic cordova platform remove ios
ionic cordova platform add ios

Re-adding the iOS platform will freshly create the ios.json file.

Yes, brute force on this case works just fine

cordova platform rm ios && cordova platform add ios

You shouldn't care what's inside platform/ios because the directory platforms is volatile in cordova, nor should be tracked on git projects.

Related