edit-config for ios use description: doc.find không phải là một hàm


81

Khi sử dụng edit-configthẻ trong config.xml, tôi gặp lỗi này trên bản dựng:

Error: doc.find is not a function

Có ý kiến ​​gì không?



Rất có thể! Cảm ơn
Benjamin E.

1
Một thay thế cho thêm những giới thiệu sử dụng là: github.com/dpa99c/cordova-custom-config
DaveAlden

Cảm ơn, chuyên gia đã trả lời;)
Benjamin E.

Câu trả lời:


175

Tôi nghĩ rằng lỗi đã xảy ra khi platforms/ios/ios.jsontệp xung đột với config.xml.

Để giải quyết vấn đề này, hãy xóa *-Info.plistkhóa và giá trị của khóa platforms/ios/ios.jsonvà thực hiện cordova prepare ioslại.

--- thêm ngày 17/5/2020 ---

Nếu một số plugin có config-filethẻ cho *-Info.plistvà config.xml có edit-configthẻ cho *-Info.plist, lỗi này có thể xảy ra. Trong trường hợp này, hãy xóa platforms/*plugins/*, sau đó cordova platform add ioscordova preparelặp lại. (Nếu bạn làm cordova preparemà không có cordova platform add ios, lỗi này có thể xảy ra)


7
Giải pháp tuyệt vời khi xem xét lỗi tào lao này không thông tin như thế nào!
jdixon04

7
Nếu giải pháp này không phù hợp với bạn, hãy chuyển đến tệp platform> ios> ios.json và trong khóa mẹ * -Info.plist, hãy thêm giá trị mới đã được thêm vào tệp config.xml. Ví dụ: nếu bạn thêm thẻ chỉnh sửa-cấu hình NSPhotoLibraryUsageDescription, hãy thêm:"NSPhotoLibraryUsageDescription": [ { "xml": "<string>Need photo library access to get pictures from there.</string>", "count": 1, "mode": "merge", "id": "config.xml" } ],
Juan Bernal

7
Điều này đã giúp nhưng có một bài đọc về điều này ( stackoverflow.com/a/48558496/1176567 ). Nếu bạn chỉ cần xóa nền tảng ios của cordova và thêm lại, nó sẽ hoạt động. Sự cố này xảy ra khi nền tảng ios đã được thêm và sau đó chúng tôi cập nhật config.xml với <edit-config>.
jsr

55

Có một vấn đề hiện có <edit-config>xung đột với platforms/ios/ios.jsonthời điểm *-Info.plistđã được điền vào jsontệp kể từ Cordova 7.1.0

Tôi đã khắc phục sự cố bằng cách sử dụng <config-file>thay thế.

Giải pháp:

<config-file target="*-Info.plist" parent="NSLocationWhenInUseUsageDescription">
    <string>need location access to find things nearby</string>
</config-file>

1
Apple hiện đang yêu cầu NSLocationAlwaysUsageDescription, điều này giải quyết được vấn đề của tôi, rất nhiều!
David Dal Busco

1
Đây là câu trả lời hoàn hảo.
Neel

34

Tôi đã làm điều này với Ionic 3. Hiện đang hoạt động tốt :)

Giải pháp:

ionic cordova platform remove ios
ionic cordova platform add ios

Việc thêm lại nền tảng iOS sẽ tạo ios.jsontệp mới.


Kinh ngạc! Không thể tìm thấy bất kỳ tài liệu nào về điều này.
ken

2
Đây là một lựa chọn hạt nhân ... đừng thử nó trước.
mmmpop
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.