簡體   English   中英

找不到Cordova iOS插件

[英]Cordova iOS plugins not found

我最近從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"]]

這是我的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>

對於未來的搜索者(像我一樣!),我在嘗試將控制台插件添加到項目時遇到了類似的問題。 安裝插件后,我缺少的一步是確保插件的源文件(CDVlogger.m)'目標成員資格'設置包含我的應用程序名稱。

類似的問題,答案對我有用:

刪除./plugins/ios.json以確保重建插件。

沒有找到Phonegap 3.0 IOS插件

我遇到過同樣的問題。 我剛剛使用node的包管理器下載了cordova 3.0命令行工具。 然后我使用Terminal中的工具創建我的項目,為其添加平台,並像這樣構建它。

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它會自動包含這些插件,但在我的情況下卻沒有。 希望這可以幫助。

編輯:在Xcode的iOS版config.xml中,您還需要進行此更改以使Logger插件正常工作。 以下是默認值。

<feature name="Console">
    <param name="ios-package" value="CDVLogger" />
</feature>

改為上面這個

<feature name="Logger">
    <param name="ios-package" value="CDVLogger" />
</feature>

現在你的所有控制台功能都可以運行而不會出錯。

我使用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

我回去使用舊的<plugin>格式。 雖然它已被棄用,但它是唯一適合我的方式。

<plugins>
    <plugin name="Device" value="CDVDevice" />
    <plugin name="Logger" value="CDVLogger" />
    ...
</plugins>

我自己遇到過這個問題。 發現唯一的解決方案是在通過CLI添加插件后運行cordova prepare prepare將必要的文件復制到platforms文件夾中的XCode項目。

我認為這應該作為build命令的一部分完成,或者如果項目存在則執行plugin add命令。 也許這是一個錯誤,也許是故意的,但我找不到很多文檔。

類似的問題與答案

發生在使用Xcode 6的phonegap 3.5上的我

腳步:

phonegap plugin remove org.apache.cordova.camera 
phongap plugin add org.apache.cordova.camera 
phongap platform remove ios
phongap build ios

可能不是最好的解決方案 - 因為你丟失了你的xcode設置 - 但它解決了這個問題。

在我的情況下...解決方案是在我的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>

我也有這個問題。 我只是自己創建了目錄(platforms / ios / appname / Plugins / org.apache.cordova.console)並將丟失的文件(CDVLLogger.h和CDVLLogger.m)復制到此目錄中。 然后編譯成功完成。

我使用的是cordova 3.5版

如果你使用Ionic得到這個錯誤然后嘗試運行cordova run ios --device而不是ionic run ios --device它為我解決了這個問題。 由於該項目是Ionic 1項目,我認為Ionic cli v2搞砸了。 在更新Ionic cli之前我沒有遇到任何問題。

我遇到了與SQLitePlugin相同的問題。 我在這篇文章中嘗試了一些提議的解決方案,但它們都沒有對我有用。 然后我嘗試刪除平台/ ios目錄(我正在為iPhone開發),再次添加ios平台(離子添加平台ios)並重建項目。 突然間,一切都像魅力一樣。 我沒有必要創建一個新項目,也不必刪除插件。

我們在Xcode中打開了項目,並查看了Project導航器側邊欄。

在虛擬的“插件”文件夾下,我們注意到該文件夾​​中缺少某些插件的文件。

側欄中的Plugins文件夾包含一些插件文件

解決方案是右鍵單擊Plugins並選擇Add Files to“ProjectName”...

然后我們導航到插件的文件夾,並在.swift添加了所有.swift.m.h文件。

這樣做會在文件platforms/ios/[ProjectName].xcodeproj/project.pbxproj創建新的引用,所以我們保留了這些更改。

適用於新的cordova版本

在現有項目中大量節省插件

如果您有一個預先存在的項目,並且想要在項目中保存所有當前添加的插件,則可以使用:

cordova plugin save

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM