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)'目标成员资格'设置的源文件包含我的应用程序名称.
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)
现在你的所有控制台功能都可以运行而不会出错.
我使用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)
我又恢复使用旧<plugin>格式。尽管它已被弃用,但这是对我有用的唯一方法。
<plugins>
<plugin name="Device" value="CDVDevice" />
<plugin name="Logger" value="CDVLogger" />
...
</plugins>
Run Code Online (Sandbox Code Playgroud)