没有找到Phonegap 3.0 IOS插件

m1c*_*rdy 29 ios cordova

我在XCode中收到此错误:

2013-08-23 14:36:18.284 Tell The DJ[14955:c07] ERROR: Plugin 'Device' not found, or is not a CDVPlugin. Check your plugin mapping in config.xml.
2013-08-23 14:36:18.284 Tell The DJ[14955:c07] -[CDVCommandQueue executePending] [Line 116] FAILED pluginJSON = [
  "Device1096677259",
  "Device",
  "getDeviceInfo",
  [

  ]
]
2013-08-23 14:36:18.285 Tell The DJ[14955:c07] CDVPlugin class CDVConnection (pluginName: NetworkStatus) does not exist.
2013-08-23 14:36:18.285 Tell The DJ[14955:c07] ERROR: Plugin 'NetworkStatus' not found, or is not a CDVPlugin. Check your plugin mapping in config.xml.
2013-08-23 14:36:18.285 Tell The DJ[14955:c07] -[CDVCommandQueue executePending] [Line 116] FAILED pluginJSON = [
  "NetworkStatus1096677260",
  "NetworkStatus",
  "getConnectionInfo",
  [

  ]
]
Run Code Online (Sandbox Code Playgroud)

我使用命令行界面安装了Phonegap 3.0并将我的www文件粘贴到项目文件夹中.该应用程序工作正常,但当我来到设备ID,相机,网络连接等本机功能时它失败并让我得到这个错误.但我认为我的config.xml是对的?

<?xml version='1.0' encoding='utf-8'?>
<widget id="io.cordova.helloCordova" version="2.0.0" xmlns="http://www.w3.org/ns/widgets">
    <name>Hello Cordova</name>
    <description>
        A sample Apache Cordova application that responds to the deviceready event.
    </description>
    <author email="dev@cordova.apache.org" href="http://cordova.io">
        Apache Cordova Team
    </author>
    <content src="index.html" />
    <feature name="LocalStorage">
        <param name="ios-package" value="CDVLocalStorage" />
    </feature>
    <access origin="http://dev.tellthedj.de" />
    <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="orientation" value="portrait" />
    <preference name="webviewbounce" value="false" />
    <preference name="prerendered-icon" value="true" />
    <preference name="phonegap-version" value="3.0.0" />
    <preference name="fullscreen" value="false" />
    <preference name="stay-in-webview" value="false" />
    <preference name="android-minSdkVersion" value="7" />
    <preference name="android-installLocation" value="internalOnly" />
    <preference name="target-device" value="universal" />
    <preference name="autohide-splashscreen" value="true" />
    <preference name="load-url-timeout" value="60000" />
    <preference name="show-splashscreen-spinner" value="true" />
    <preference name="show-splash-screen-spinner" value="true" />
    <preference name="allow-inline-media-playback" value="false" />
    <preference name="launch-mode" value="standard" />
    <feature name="Media">
        <param name="ios-package" value="CDVSound" />
    </feature>
    <feature name="Camera">
        <param name="ios-package" value="CDVCamera" />
    </feature>
    <feature name="Console">
        <param name="ios-package" value="CDVLogger" />
    </feature>
    <feature name="Device">
        <param name="ios-package" value="CDVDevice" />
    </feature>
    <feature name="Notification">
        <param name="ios-package" value="CDVNotification" />
    </feature>
    <feature name="File">
        <param name="ios-package" value="CDVFile" />
    </feature>
    <feature name="FileTransfer">
        <param name="ios-package" value="CDVFileTransfer" />
    </feature>
    <feature name="Geolocation">
        <param name="ios-package" value="CDVLocation" />
    </feature>
    <feature name="Capture">
        <param name="ios-package" value="CDVCapture" />
    </feature>
    <feature name="NetworkStatus">
        <param name="ios-package" value="CDVConnection" />
    </feature>
    <feature name="SplashScreen">
        <param name="ios-package" value="CDVSplashScreen" />
    </feature>
    <plugins>
        <plugin name="Device" value="CDVDevice" />
    </plugins>
</widget>
Run Code Online (Sandbox Code Playgroud)

小智 73

我正在使用PhoneGap 3.0/3.1并在重建之前删除了本地构建文件夹(因为我必须在辅助构建脚本中复制图标和内容).这打破了我的插件并产生了同样的错误消息.

最后我发现我必须在删除./plugins/ios.json时删除./platforms/ios以确保重建插件.

  • @nuteron:你问的是如何删除文件?rm plugins/ios.json (3认同)
  • 如果您对xcode项目进行手动自定义,则删除platforms/ios文件夹不是解决方案.请参阅下面的答案以获取替代方案. (3认同)
  • 这是我认为最好的答案. (2认同)

bju*_*nix 52

删除platforms/ios文件夹对我来说不是一个解决方案,因为xcode项目的所有手动自定义都将丢失.

但有一个简单的方法:

在XCode中,转到Build Phases - >打开Compiled Sources下拉列表.单击+并添加缺少的插件.m文件,该文件应该在您的插件目录中(但已从编译的源中丢失).

这个解决方案来自另一个堆栈溢出答案,在这里:https://stackoverflow.com/a/21148428/80254

另一种选择:

在xcode中,确保插件的源文件设置了"目标成员资格"设置:在文件浏览器中,转到插件> CDVDevice.m并检查右侧"目标成员资格"的应用名称旁边是否有勾号xcode窗口的一面.这实际上和其他解决方案一样,但更方便一点.

从这里:https://stackoverflow.com/a/20576744/80254

  • +1检查'.m`文件的'目标成员资格'. (4认同)
  • 精彩!绝对是正确的方法.<3 (2认同)

Kob*_*orn 17

我遇到了同样的问题.我遵循了Jeffrey Van Alstine给出的解决方案.这是我用于构建和测试使用Phonegap 3.0/3.1开发的iOS应用程序的脚本.

#!/bin/bash
echo "Killing xcode..."
kill $(ps aux | grep 'Xcode' | awk '{print $2}')
rm -r platforms/ios
rm plugins/ios.json
phonegap build ios
open platforms/ios/*.xcodeproj
Run Code Online (Sandbox Code Playgroud)

例如,将其保存为bash文件ios.sh到您的工作目录(包含www文件夹的目录)并运行./ios.sh