edit-config für ios-Nutzungsbeschreibungen: doc.find ist keine Funktion

80

Bei Verwendung des edit-configTags in config.xmlwird beim Erstellen der folgende Fehlermeldung angezeigt:

Error: doc.find is not a function

Irgendwelche Ideen?

Benjamin E.
quelle
Höchstwahrscheinlich! Vielen Dank
Benjamin E.
1
Eine Alternative zum Hinzufügen dieser Verwendungsbeschreibungen ist: github.com/dpa99c/cordova-custom-config
DaveAlden
Danke, antwortete der Experte;)
Benjamin E.

Antworten:

172

Ich denke, dass der Fehler ausgelöst wurde, wenn die platforms/ios/ios.jsonDatei in Konflikt mit der config.xml.

Um dieses Problem zu beheben, entfernen Sie den *-Info.plistSchlüssel und seinen Wert in platforms/ios/ios.jsonund cordova prepare ioswiederholen Sie den Vorgang.

--- Hinzufügen 17 / Mai / 2020 ---

Wenn einige Plugins ein config-fileTag für *-Info.plistund config.xml ein edit-configTag für haben *-Info.plist, kann dieser Fehler auftreten. Entfernen Sie in diesem Fall platforms/*und plugins/*und dann cordova platform add iosund immer cordova preparewieder. (Wenn Sie darauf cordova prepareverzichten cordova platform add ios, kann dieser Fehler auftreten.)

KNaito
quelle
7
Gute Lösung, wenn man bedenkt, wie wenig informativ dieser Mistfehler ist!
jdixon04
6
Wenn diese Lösung für Sie nicht funktioniert, gehen Sie zu Ihrer Plattform> ios> ios.json und fügen Sie im übergeordneten Schlüssel * -Info.plist den neuen Wert hinzu, der der Datei config.xml hinzugefügt wurde. Wenn Sie beispielsweise das Tag NSPhotoLibraryUsageDescription edit-config hinzufügen, fügen Sie Folgendes hinzu:"NSPhotoLibraryUsageDescription": [ { "xml": "<string>Need photo library access to get pictures from there.</string>", "count": 1, "mode": "merge", "id": "config.xml" } ],
Juan Bernal
7
Dies hat geholfen, aber lesen Sie dies ( stackoverflow.com/a/48558496/1176567 ). Wenn Sie nur die cordova ios-Plattform entfernen und erneut hinzufügen, funktioniert dies. Dieses Problem tritt auf, wenn die ios-Plattform bereits hinzugefügt wurde und wir die Datei config.xml mit <edit-config> aktualisieren.
jsr
54

Es besteht ein Problem mit <edit-config>Konflikten mit dem platforms/ios/ios.jsonZeitpunkt, zu dem *-Info.plistdie jsonDatei ab Cordova 7.1.0 bereits ausgefüllt ist

Ich habe das Problem behoben, indem ich <config-file>stattdessen verwendet habe.

Lösung:

<config-file target="*-Info.plist" parent="NSLocationWhenInUseUsageDescription">
    <string>need location access to find things nearby</string>
</config-file>
Shien Hong
quelle
1
Apple NSLocationAlwaysUsageDescriptionbittet jetzt , dies löst mein Problem, vielen Dank!
David Dal Busco
Dies ist die perfekte Antwort.
Neel
34

Ich habe das mit gemacht Ionic 3. Funktioniert jetzt gut :)

Lösung:

ionic cordova platform remove ios
ionic cordova platform add ios

Durch erneutes Hinzufügen der iOS-Plattform wird die ios.jsonDatei frisch erstellt .

Sampath
quelle
Tolle! Es konnte keine Dokumentation dazu gefunden werden.
Ken
1
Dies ist eine Art nukleare Option ... versuchen Sie es nicht zuerst.
mmmpop