最近、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)の「ターゲットメンバーシップ」設定にアプリケーション名が含まれていることを確認することでした。
同じ問題がありました。ノードのパッケージマネージャーを使用して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>
これで、すべてのコンソール機能がエラーをスローすることなく機能するはずです。
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>
私の場合...解決策は、使用するすべてのプラグインにこのコード行を追加することでした..私の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>
自分でこの問題に出くわしました。唯一のソリューションが実行されていることがわかりましたcordova prepare
CLI経由でプラグインを追加した後。 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の設定を失うためです-しかし、それは問題を修正しました。
私もこの問題を抱えていました。自分でディレクトリ(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 cli v2はプロジェクトがIonic 1プロジェクトだったため、物事を台無しにしていた。Ionic cli。
新しいCordovaバージョンの場合
既存のプロジェクトでのプラグインの大量保存
既存のプロジェクトがあり、プロジェクトに現在追加されているすべてのプラグインを保存する場合は、次を使用できます。
cordova plugin save
SQLitePluginでも同じ問題がありました。この投稿で提案された解決策のいくつかを試しましたが、どれも私にとってはうまくいきませんでした。次に、platform/ios dirを削除して(iPhone用に開発しています)、iosプラットフォームを再度追加し(ionic add platform ios)、プロジェクトを再構築しました。突然、すべてが魅力のように機能しました。新しいプロジェクトを作成したり、プラグインを削除したりする必要はありませんでした。