edit-config dla opisów zastosowań ios: doc.find nie jest funkcją

82

Podczas używania edit-configtagu w programie config.xmlpojawia się ten błąd podczas kompilacji:

Error: doc.find is not a function

Jakieś pomysły?

Benjamin E.
źródło
Najprawdopodobniej! Dzięki
Benjamin E.
1
Alternatywą do dodania opisów zastosowań jest: github.com/dpa99c/cordova-custom-config
DaveAlden
Dzięki, ekspert odpowiedział;)
Benjamin E.

Odpowiedzi:

177

Myślę, że błąd został wyrzucony, gdy platforms/ios/ios.jsonplik jest w konflikcie z config.xml.

Aby rozwiązać ten problem, usuń *-Info.plistklucz i jego wartość w platforms/ios/ios.jsoni wykonaj cordova prepare iosponownie.

--- dodanie 17 maja / 2020 ---

Jeśli niektóre wtyczki mają config-filetag dla, *-Info.plista plik config.xml ma edit-configtag dla *-Info.plist, może wystąpić ten błąd. W takim przypadku usuń platforms/*i plugins/*, a następnie cordova platform add iosi cordova prepareponownie. (Jeśli tego cordova preparenie zrobisz cordova platform add ios, ten błąd może się zdarzyć)

KNaito
źródło
7
Niezłe rozwiązanie, biorąc pod uwagę, jak mało informacyjny jest ten błąd!
jdixon04
7
Jeśli to rozwiązanie nie działa, przejdź do swoich platform> ios> ios.json i w kluczu nadrzędnym * -Info.plist dodaj nową wartość, która została dodana do pliku config.xml. Na przykład, jeśli dodasz znacznik NSPhotoLibraryUsageDescription edit-config, dodaj:"NSPhotoLibraryUsageDescription": [ { "xml": "<string>Need photo library access to get pictures from there.</string>", "count": 1, "mode": "merge", "id": "config.xml" } ],
Juan Bernal
7
Pomogło to, ale przeczytaj to ( stackoverflow.com/a/48558496/1176567 ). Jeśli po prostu usuniesz platformę cordova ios i dodasz ją ponownie, zadziała. Ten problem występuje, gdy platforma ios jest już dodana, a następnie aktualizujemy plik config.xml za pomocą <edit-config>.
jsr
55

Istnieje problem z <edit-config>konfliktem z, platforms/ios/ios.jsonkiedy *-Info.plistjest już wypełnione wjson pliku od wersji Cordova 7.1.0

Naprawiłem problem, używając <config-file> zamiast tego.

Rozwiązanie:

<config-file target="*-Info.plist" parent="NSLocationWhenInUseUsageDescription">
    <string>need location access to find things nearby</string>
</config-file>
Shien Hong
źródło
1
Apple prosi teraz NSLocationAlwaysUsageDescription, to rozwiązuje mój problem, dzięki!
David Dal Busco
1
To jest doskonała odpowiedź.
Neel
34

Zrobiłem to z Ionic 3. Teraz działa dobrze :)

Rozwiązanie:

ionic cordova platform remove ios
ionic cordova platform add ios

Ponowne dodanie platformy iOS spowoduje odświeżenie ios.jsonpliku.

Sampath
źródło
Niesamowity! Nie udało się znaleźć żadnej dokumentacji na ten temat.
ken
2
To rodzaj opcji nuklearnej ... nie próbuj jej najpierw.
mmmpop