找不到Cordova iOS插件

bju*_*son 17 xcode ios cordova

我最近从2.3.0升级到Cordova 2.9.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"]]
Run Code Online (Sandbox Code Playgroud)

这是我的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>
Run Code Online (Sandbox Code Playgroud)

Pau*_*aul 30

对于未来的搜索者(像我一样!),我在尝试将控制台插件添加到项目时遇到了类似的问题.安装插件后,我缺少的一步是确保插件(CDVlogger.m)'目标成员资格'设置的源文件包含我的应用程序名称.

  • 类似的东西对我有用:"在XCode中,转到Build Phases - >打开Compiled Sources下拉列表.点击+并添加缺少的插件.m文件." 来自http://stackoverflow.com/a/21148428/80254 (6认同)

Ska*_*Ska 26

类似的问题,答案对我有用:

删除./plugins/ios.json以确保重建插件.

没有找到Phonegap 3.0 IOS插件


Rob*_*t-W 17

我遇到过同样的问题.我刚刚使用node的包管理器下载了cordova 3.0命令行工具.然后我使用Terminal中的工具创建我的项目,为其添加平台,并像这样构建它.

cordova create myApp com.project.RobertW myApp
cd myApp
cordova platform add ios
cordova platform add android
cordova build
Run Code Online (Sandbox Code Playgroud)

在此之后,当我试图在模拟器中运行它时,我在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
Run Code Online (Sandbox Code Playgroud)

这样做后,我再次在模拟器中运行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它会自动包含这些插件,但在我的情况下却没有.希望这可以帮助.

编辑:在Xcode的iOS版config.xml中,您还需要进行此更改以使Logger插件正常工作.以下是默认值.

<feature name="Console">
    <param name="ios-package" value="CDVLogger" />
</feature>
Run Code Online (Sandbox Code Playgroud)

改为上面这个

<feature name="Logger">
    <param name="ios-package" value="CDVLogger" />
</feature>
Run Code Online (Sandbox Code Playgroud)

现在你的所有控制台功能都可以运行而不会出错.

  • 大家好,我和CDVDevice有同样的问题.唯一有效的方法是创建一个新项目,重新添加如图所示的插件,然后再添加www文件夹中的现有代码.然后它再次起作用(yay). (2认同)

Max*_*Max 6

我使用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
Run Code Online (Sandbox Code Playgroud)


bju*_*son 4

我又恢复使用旧<plugin>格式。尽管它已被弃用,但这是对我有用的唯一方法。

<plugins>
    <plugin name="Device" value="CDVDevice" />
    <plugin name="Logger" value="CDVLogger" />
    ...
</plugins>
Run Code Online (Sandbox Code Playgroud)