web-dev-qa-db-ja.com

Cordova iOSプラグインが見つかりません

最近、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>
17
bjudson

将来の検索者(私のような!)の場合、コンソールプラグインをプロジェクトに追加しようとすると同様の問題が発生しました。プラグインをインストールした後、私にとって欠けていたステップは、プラグインのソースファイル(CDVlogger.m)の「ターゲットメンバーシップ」設定にアプリケーション名が含まれていることを確認することでした。

30
Paul

私のために働いた答えと同様の質問:

./plugins/ios.jsonを削除して、プラグインが再構築されるようにします。

Phonegap 3.0 IOSプラグインが見つかりません

26
Ska

同じ問題がありました。ノードのパッケージマネージャーを使用してcordova 3.0コマンドラインツールをダウンロードしました。次に、ターミナルのツールを使用してプロジェクトを作成し、プラットフォームを追加して、次のようにビルドしました。

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>

これで、すべてのコンソール機能がエラーをスローすることなく機能するはずです。

17
Robert-W

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
6
Max

古い<plugin> フォーマット。推奨されていませんが、私にとっては唯一の方法です。

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

私の場合...解決策は、使用するすべてのプラグインにこのコード行を追加することでした..私の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>
2
xhinoda

自分でこの問題に出くわしました。唯一のソリューションが実行されていることがわかりましたcordova prepare CLI経由でプラグインを追加した後。 prepareは、必要なファイルをplatformsフォルダー内のXCodeプロジェクトにコピーします。

これはbuildコマンドの一部として、またはplugin addコマンド(プロジェクトが存在する場合)。たぶんそれはバグかもしれませんし、たぶんそれは意図的なものかもしれませんが、私はそれに関する多くのドキュメントを見つけることができませんでした。

回答のある同様の質問

2
Mike

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の設定を失うためです-しかし、それは問題を修正しました。

2
etwina

私もこの問題を抱えていました。自分でディレクトリ(platforms/ios/appname/Plugins/org.Apache.cordova.console)を作成し、不足しているファイル(CDVLLogger.hおよびCDVLLogger.m)をこのディレクトリにコピーしました。その後、コンパイルは正常に完了しました。

Cordovaバージョン3.5を使用しています

1
Jens

Ionicを使用してこのエラーが発生した場合、cordova run ios --device の代わりに ionic run ios --deviceそれは私のために問題を修正しました。 Ionic cli v2はプロジェクトがIonic 1プロジェクトだったため、物事を台無しにしていた。Ionic cli。

0
Jack

新しいCordovaバージョンの場合

既存のプロジェクトでのプラグインの大量保存

既存のプロジェクトがあり、プロジェクトに現在追加されているすべてのプラグインを保存する場合は、次を使用できます。

cordova plugin save
0
Azad Zain

Xcodeでプロジェクトを開き、Projectナビゲーターサイドバーを確認しました。

仮想の「プラグイン」フォルダーの下で、一部のプラグインのファイルがこのフォルダーにないことがわかりました。

the Plugins folder in the sidebar containing a few plugin files

解決策は、Pluginsを右クリックし、「ProjectName」にファイルを追加...

次に、プラグインのフォルダーに移動し、すべての.Swiftおよび.mおよび.hファイルがあります。

これを行うと、ファイルに新しい参照が作成されましたplatforms/ios/[ProjectName].xcodeproj/project.pbxprojしたがって、これらの変更を保持しました。

0
joeytwiddle

SQLitePluginでも同じ問題がありました。この投稿で提案された解決策のいくつかを試しましたが、どれも私にとってはうまくいきませんでした。次に、platform/ios dirを削除して(iPhone用に開発しています)、iosプラットフォームを再度追加し(ionic add platform ios)、プロジェクトを再構築しました。突然、すべてが魅力のように機能しました。新しいプロジェクトを作成したり、プラグインを削除したりする必要はありませんでした。

0
Carlos Ballock