私は主に、Cordova を使用するハイブリッド アプリケーションの開発者です。ここで入手可能なiOS および Android 用のネイティブ Garmin SDK を実装するには、Cordova プラグインを作成する必要があると思われる興味深いシナリオに遭遇しました。
コルドバのプラグインのドキュメントを確認し、その例を完成させました。ここにリンクします。また、この問題に関するいくつかの適切なリソースを確認しました。InstabugとModusのリソースを参照してください。
ただし、他のチュートリアルに含まれている一部のコンポーネントが Garmin SDK にない理由を理解するには、十分な知識がありません。主に ConnectIQ.bundle です。
また、発生しているエラーの原因が何であるかについてもわかりません。プロジェクトが、開発しようとしているカスタム プラグインを介して ConnectIQ.framework を実装する特定のファイルを見つけることができないと感じています。
昨年リリースされた非公式の cordova Connect IQ プラグインを別の人の実装で見つけました。実行時のエラーログは次のとおりです。
2016-12-18 18:35:04.748 appTest[56419:4257397] CDVPlugin class CIQPlugin (pluginName: connectiq) does not exist.
2016-12-18 18:35:04.748 appTest[56419:4257397] [CDVTimer][connectiq] 0.180006ms
2016-12-18 18:35:13.942 appTest[56419:4257397] CDVPlugin class CIQPlugin (pluginName: ConnectIQ) does not exist.
2016-12-18 18:35:13.942 appTest[56419:4257397] ERROR: Plugin 'ConnectIQ' not found, or is not a CDVPlugin. Check your plugin mapping in config.xml.
2016-12-18 18:35:13.942 app Test[56419:4257397] -[CDVCommandQueue executePending] [Line 142] FAILED pluginJSON = ["INVALID","ConnectIQ","initializeWithUrlScheme",["prefs-123456"]]
これには、plugin.xml ファイルの内容が含まれています。
<?xml version="1.0" encoding="UTF-8"?>
<!-- Copyright (c) 2014 PayPal. All rights reserved. -->
<plugin xmlns="http://apache.org/cordova/ns/plugins/1.0"
xmlns:rim="http://www.blackberry.com/ns/widgets"
xmlns:android="http://schemas.android.com/apk/res/android"
id="com.heavydutydev.cordova.ciq"
version="0.0.1">
<name>Cordova CIQ</name>
<description>This plugin allows basic interactions with the Garmin Connect IQ native interfaces</description>
<keywords>garmin, connect-iq, connect iq</keywords>
<license>NONE</license>
<engines>
<engine name="cordova" version=">=5.0.0" />
</engines>
<!-- ios -->
<platform name="ios">
<js-module src="www/cdv-plugin-connect-iq.js" name="ConnectIQ">
<clobbers target="ConnectIQ" />
</js-module>
<config-file target="config.xml" parent="/*">
<feature name="ConnectIQ">
<param name="ios-package" value="CIQPlugin" onload="true" />
</feature>
</config-file>
<source-file src="src/ios/ConnectIQ.framework" framework="true" />
<!-- <header-file src="src/ios/PayPalMobileCordovaPlugin.h" />
<source-file src="src/ios/PayPalMobileCordovaPlugin.m" />
<header-file src="src/ios/PayPalMobile/PayPalConfiguration.h" />
<header-file src="src/ios/PayPalMobile/PayPalFuturePaymentViewController.h" />
<header-file src="src/ios/PayPalMobile/PayPalMobile.h" />
<header-file src="src/ios/PayPalMobile/PayPalOAuthScopes.h" />
<header-file src="src/ios/PayPalMobile/PayPalPayment.h" />
<header-file src="src/ios/PayPalMobile/PayPalPaymentViewController.h" />
<header-file src="src/ios/PayPalMobile/PayPalProfileSharingViewController.h" />
<source-file src="src/ios/PayPalMobile/libPayPalMobile.a" framework="true" />
<source-file src="src/ios/PayPalMobile/libCardIO.a" framework="true" />
<source-file src="src/ios/PayPalMobile/libopencv_core.a" framework="true" />
<source-file src="src/ios/PayPalMobile/libopencv_imgproc.a" framework="true" />
<framework src="Accelerate.framework" />
<framework src="AudioToolbox.framework" />
<framework src="AVFoundation.framework" />
<framework src="CFNetwork.framework" />
<framework src="CoreGraphics.framework" />
<framework src="CoreLocation.framework" weak="true" />
<framework src="CoreMedia.framework" weak="true" />
<framework src="CoreVideo.framework"/>
<framework src="MessageUI.framework" />
<framework src="OpenGLES.framework" />
<framework src="MobileCoreServices.framework" />
<framework src="Security.framework" />
<framework src="SafariServices.framework"/>
<framework src="SystemConfiguration.framework" />
<framework src="QuartzCore.framework"/>
<framework src="UIKit.framework"/>
<framework src="libc++.dylib" />
<framework src="libPayPalMobile.a" />
<framework src="libCardIO.a" />
<framework src="libopencv_core.a" />
<framework src="libopencv_imgproc.a" /> -->
</platform>
<platform name="android">
<js-module src="www/cdv-plugin-connect-iq.js" name="ConnectIQ">
<clobbers target="ConnectIQ" />
</js-module>
<config-file target="res/xml/config.xml" parent="/*">
<feature name="ConnectIQ">
<param name="android-package" value="com.heavydutydev.cordova.ciq.CIQPlugin" />
</feature>
</config-file>
<source-file src="src/android/com/heavydutydev/cordova/ciq/CIQPlugin.java" target-dir="src/com/heavydutydev/cordova/ciq" />
<source-file src="src/android/com/heavydutydev/cordova/ciq/CIQContext.java" target-dir="src/com/heavydutydev/cordova/ciq" />
<source-file src="src/android/libs/connectiq.jar" target-dir="libs" />
<!--
<config-file target="AndroidManifest.xml" parent="/manifest">
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.VIBRATE" />
<uses-feature android:name="android.hardware.camera" android:required="false" />
<uses-feature android:name="android.hardware.camera.autofocus" android:required="false" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
<uses-permission android:name="android.permission.INTERNET"/>
</config-file> -->
<!-- <config-file target="AndroidManifest.xml" parent="/manifest/application">
<service android:name="com.paypal.android.sdk.payments.PayPalService"
android:exported="false" />
<activity android:name="com.paypal.android.sdk.payments.PaymentActivity" />
<activity android:name="com.paypal.android.sdk.payments.LoginActivity" />
<activity android:name="com.paypal.android.sdk.payments.PaymentMethodActivity" />
<activity android:name="com.paypal.android.sdk.payments.PaymentConfirmActivity" />
<activity android:name="com.paypal.android.sdk.payments.PayPalFuturePaymentActivity" />
<activity android:name="com.paypal.android.sdk.payments.FuturePaymentConsentActivity" />
<activity android:name="com.paypal.android.sdk.payments.FuturePaymentInfoActivity" />
<activity android:name="com.paypal.android.sdk.payments.PayPalProfileSharingActivity" />
<activity android:name="com.paypal.android.sdk.payments.ProfileSharingConsentActivity" />
<activity
android:name="io.card.payment.CardIOActivity"
android:configChanges="keyboardHidden|orientation" />
<activity android:name="io.card.payment.DataEntryActivity" />
</config-file> -->
</platform>
</plugin>
これらのエラーと私の調査に基づいて、plugin.xml と config.xml は、実装しようとしている SDK と適切に連携していないと思います。問題について詳しく知ることができるように、誰かが追加のトラブルシューティング手順を提供できる場合は、大歓迎です.