Кордовы iOS плагины не найдены
Недавно я обновился до Кордовы 2.9.0 с 2.3.0. После выполнения всех инструкций по обновлению я смог запустить приложение в симуляторе. Однако в Xcode я вижу следующие ошибки:
ERROR: Plugin 'Device' not found, or is not a CDVPlugin. Check your plugin mapping in config.xml.
-[CDVCommandQueue executePending] [Line 103] FAILED pluginJSON = ["Device1776032119","Device","getDeviceInfo",[]]
ERROR: Plugin 'NetworkStatus' not found, or is not a CDVPlugin. Check your plugin mapping in config.xml.
-[CDVCommandQueue executePending] [Line 103] FAILED pluginJSON = ["NetworkStatus1776032120","NetworkStatus","getConnectionInfo",[]]
-[CDVCommandQueue executePending] [Line 103] FAILED pluginJSON = ["INVALID","Logger","logLevel",["LOG","deviceready has not fired after 5 seconds."]]
ERROR: Plugin 'Logger' not found, or is not a CDVPlugin. Check your plugin mapping in config.xml.
-[CDVCommandQueue executePending] [Line 103] FAILED pluginJSON = ["INVALID","Logger","logLevel",["LOG","Channel not fired: onCordovaConnectionReady"]]
ERROR: Plugin 'Logger' not found, or is not a CDVPlugin. Check your plugin mapping in config.xml.
-[CDVCommandQueue executePending] [Line 103] FAILED pluginJSON = ["INVALID","Logger","logLevel",["LOG","Channel not fired: onCordovaInfoReady"]]
Это мой файл config.xml:
<?xml version="1.0" encoding="UTF-8"?>
<widget>
<feature name="Geolocation">
<param name="ios-package" value="CDVLocation" />
</feature>
<feature name="Device">
<param name="ios-package" value="CDVDevice" />
</feature>
<feature name="Accelerometer">
<param name="ios-package" value="CDVAccelerometer" />
</feature>
<feature name="Compass">
<param name="ios-package" value="CDVLocation" />
</feature>
<feature name="Media">
<param name="ios-package" value="CDVSound" />
</feature>
<feature name="Camera">
<param name="ios-package" value="CDVCamera" />
</feature>
<feature name="Contacts">
<param name="ios-package" value="CDVContacts" />
</feature>
<feature name="File">
<param name="ios-package" value="CDVFile" />
</feature>
<feature name="NetworkStatus">
<param name="ios-package" value="CDVConnection" />
</feature>
<feature name="Notification">
<param name="ios-package" value="CDVNotification" />
</feature>
<feature name="FileTransfer">
<param name="ios-package" value="CDVFileTransfer" />
</feature>
<feature name="Capture">
<param name="ios-package" value="CDVCapture" />
</feature>
<feature name="Battery">
<param name="ios-package" value="CDVBattery" />
</feature>
<feature name="SplashScreen">
<param name="ios-package" value="CDVSplashScreen" />
</feature>
<feature name="Echo">
<param name="ios-package" value="CDVEcho" />
</feature>
<feature name="Globalization">
<param name="ios-package" value="CDVGlobalization" />
</feature>
<feature name="InAppBrowser">
<param name="ios-package" value="CDVInAppBrowser" />
</feature>
<feature name="Logger">
<param name="ios-package" value="CDVLogger" />
</feature>
<feature name="LocalStorage">
<param name="ios-package" value="CDVLocalStorage" />
</feature>
<plugins>
</plugins>
<preference name="KeyboardDisplayRequiresUserAction" value="true" />
<preference name="SuppressesIncrementalRendering" value="false" />
<preference name="UIWebViewBounce" value="true" />
<preference name="TopActivityIndicator" value="gray" />
<preference name="EnableLocation" value="false" />
<preference name="EnableViewportScale" value="false" />
<preference name="AutoHideSplashScreen" value="true" />
<preference name="ShowSplashScreenSpinner" value="true" />
<preference name="MediaPlaybackRequiresUserAction" value="false" />
<preference name="AllowInlineMediaPlayback" value="false" />
<preference name="OpenAllWhitelistURLsInWebView" value="false" />
<preference name="BackupWebStorage" value="cloud" />
<preference name="fullscreen" value="true" />
<preference name="webviewbounce" value="true" />
<access origin="*.googleapis.com"/>
<access origin="*.gstatic.com"/>
<access origin="*.s3.amazonaws.com"/>
</widget>
Ответы
Ответ 1
Для будущих поисковиков (например, я!) у меня была аналогичная проблема с попыткой добавить консольный плагин в мой проект. Отсутствующий шаг для меня после установки плагина состоял в том, чтобы убедиться, что исходные файлы параметров целевого членства плагина (CDVlogger.m) включали мои имена приложений.
Ответ 2
Подобный вопрос с ответом, который работал у меня:
удалите./plugins/ios.json, чтобы убедиться, что плагины перестроены.
Phonegap 3.0 Плагины IOS не найдены
Ответ 3
У меня была такая же проблема. Я просто загрузил инструмент командной строки cordova 3.0 с помощью диспетчера пакетов node. Затем я использовал инструмент из терминала, чтобы создать свой проект, добавить к нему платформы и создать его таким образом.
cordova create myApp com.project.RobertW myApp
cd myApp
cordova platform add ios
cordova platform add android
cordova build
После этого я увидел те же ошибки в Xcode, когда я попытался запустить его в симуляторе. Кажется, по умолчанию теперь PhoneGap не включает в себя никаких плагинов в проекте, поэтому даже если в вашем файле конфигурации они, вероятно, не будут находиться в папке плагинов. Вы должны добавить их вручную или с помощью инструмента командной строки. Я использовал инструмент командной строки, потому что я думал, что это проще.
cordova plugin add https://git-wip-us.apache.org/repos/asf/cordova-plugin-device.git
cordova plugin add https://git-wip-us.apache.org/repos/asf/cordova-plugin-network-information.git
cordova plugin add https://git-wip-us.apache.org/repos/asf/cordova-plugin-console.git
cordova build
После этого я снова запустил myApp в симуляторе, и все сработало нормально. В командной строке есть несколько полезных инструкций:
http://docs.phonegap.com/en/3.0.0/guide_cli_index.md.html#The%20Command-line%20Interface
Мне хотелось бы думать, что если PhoneGap 3.0 требует Logger, Device и Network Status, он будет включать эти плагины автоматически, но в моем случае это не так. Надеюсь, это поможет.
Изменить: в версии config.xml для iOS в Xcode вам также потребуется внести это изменение, чтобы плагин Logger работал правильно. По умолчанию используется следующее.
<feature name="Console">
<param name="ios-package" value="CDVLogger" />
</feature>
Перейдите к этому
<feature name="Logger">
<param name="ios-package" value="CDVLogger" />
</feature>
Теперь все ваши функции консоли должны работать без ошибок.
Ответ 4
У меня была такая же проблема с плагином информации об устройстве, используя Phonegap 3.0.0. Чтобы решить эту проблему, мне просто пришлось удалить и переустановить плагин, а затем перестроить проект.
phonegap local plugin remove org.apache.cordova.device
phonegap local plugin add https://git-wip-us.apache.org/repos/asf/cordova-plugin-device.git
phonegap local build ios
Ответ 5
Я вернулся к использованию старого формата <plugin>
. Хотя это устарело, это единственный способ, который работает для меня.
<plugins>
<plugin name="Device" value="CDVDevice" />
<plugin name="Logger" value="CDVLogger" />
...
</plugins>
Ответ 6
Произошел этот вопрос сам. Найденное единственное решение выполняло cordova prepare
после добавления плагинов через CLI. prepare
копирует необходимые файлы в проект XCode в папке platforms
.
Я думаю, что это должно быть сделано как часть команды build
или команды plugin add
, если проект присутствует. Может быть, это ошибка, может быть, она преднамеренная, но я не мог найти там много документации.
Подобный вопрос с ответами.
Ответ 7
случилось со мной по телефонной трубке 3.5 с Xcode 6
:
phonegap plugin remove org.apache.cordova.camera
phongap plugin add org.apache.cordova.camera
phongap platform remove ios
phongap build ios
Вероятно, это не лучшее решение - потому что вы потеряли настройки xcode. Но проблема была устранена.
Ответ 8
В моем случае... решение добавило эту строку кода для всех плагинов, которые я использую.. в моем config.xml
<feature name="Device">
<param name="ios-package" value="CDVDevice" />
<param name="onload" value="true" />
</feature>
<feature name="FCMPlugin">
<param name="ios-package" value="FCMPlugin" />
<param name="onload" value="true" />
</feature>
<feature name="StatusBar">
<param name="ios-package" value="CDVStatusBar" />
<param name="onload" value="true" />
</feature>
<feature name="CDVLocation">
<param name="ios-package" value="CDVLocation" />
<param name="onload" value="true" />
</feature>
<feature name="cordova.logger">
<param name="ios-package" value="CDVLogger" />
<param name="onload" value="true" />
</feature>
<feature name="Logger">
<param name="ios-package" value="CDVLogger" />
<param name="onload" value="true" />
</feature>
<feature name="Console">
<param name="ios-package" value="CDVLogger" />
<param name="onload" value="true" />
</feature>
<feature name="SQLitePlugin">
<param name="ios-package" value="SQLitePlugin" />
<param name="onload" value="true" />
</feature>
<feature name="Keyboard">
<param name="ios-package" value="IonicKeyboard" />
<param name="onload" value="true" />
</feature>
Ответ 9
У меня также была эта проблема. Я просто создал каталог самостоятельно (platform/ios/appname/Plugins/org.apache.cordova.console) и скопировал недостающие файлы (CDVLLogger.h и CDVLLogger.m) в этот каталог. Затем компиляция прошла успешно.
Я использую кордову версии 3.5
Ответ 10
Если вы получите эту ошибку с помощью Ionic, попробуйте запустить cordova run ios --device
вместо ionic run ios --device
. Это исправило проблему для меня. Я думаю, что Ionic cli v2 был бесполезным, поскольку проект был проектом Ionic 1. У меня не было проблем до обновления Ionic cli.
Ответ 11
У меня была такая же проблема с SQLitePlugin. Я пробовал некоторые из предлагаемых решений в этом посте, но ни один из них не работал у меня. Затем я попытался удалить платформу /ios dir (я разрабатываю для iPhone), снова добавил платформу ios (ionic add platform ios) и перестроил проект. Внезапно все работало как шарм. Мне не нужно было создавать новый проект и не нужно было удалять плагины.
Ответ 12
Мы открыли проект в Xcode и заглянули в боковую панель навигатора проекта.
Под виртуальной папкой "Плагины" мы заметили, что в этой папке отсутствовали файлы для некоторых плагинов.
![the Plugins folder in the sidebar containing a few plugin files]()
Решением было щелкнуть правой кнопкой мыши на плагинах и выбрать " Добавить файлы в" ProjectName "...
Затем мы перешли в папку плагина и добавили .swift
все .swift
.m
и .h
.
В результате были созданы новые ссылки в файле platforms/ios/[ProjectName].xcodeproj/project.pbxproj
поэтому мы сохранили эти изменения.
Ответ 13
Для новых версий Cordova
Массовое сохранение плагинов в существующем проекте
Если у вас уже есть существующий проект и вы хотите сохранить все добавленные в данный момент плагины в проекте, вы можете использовать:
cordova plugin save