2

私はこのユーザーと同じ問題を抱えています。eclipse (AppCenter -> Run As -> Build All Environments) を使用して IBM Worklight AppCenter クライアント アプリケーションをビルドし、xcode (iphone -> Run As -> Xcode プロジェクト) で開き、xcode 経由で iphone エミュレーターでアプリを実行しました。

アプリに Worklight サーバー資格情報 (ユーザー名、パスワード、サーバー、ポート、コンテキスト) を入力すると、「ロード中」というメッセージが表示され、アプリが機能しなくなります。

アプリの JavaScript を使用してデバッグし、Cordova ネイティブ プラグインへの呼び出しを実行しようとしているアプリに問題があることを突き止めました。

cordova.exec(pSuccessCallback,                      // Success callback from the plugin
                     function(e){     
                        console.log("Error connecting to server [code, msg, status] = " 
                                + e.errorCode + ", "
                                + e.errorMsg + ", "
                                + e.httpCode);

                        pFailureCallback(e);
                     },                              
                     'com.ibm.mobile.InstallerPlugin',      // Tell cordova to run "com.ibm.mobile.InstallerPlugin" Plugin
                     'updateConnection',                    // Tell plugin, which action we want to perform
                     [pUsername, pPassword, pServerURL]);   // Passing list of args to the plugin         

次のエラー メッセージが xcode に表示されます: IBMAppCenter[2315:70b] エラー: メソッド 'updateConnection:' がプラグイン 'com.ibm.mobile.InstallerPlugin' で定義されていません

このプラグインを実装するネイティブ ライブラリは、想定される場所にありますが、アプリケーションからは見えないようです - IBMAppCenter/apps/AppCenter/iphone/native/appCenterLib:

  • デバッグ-iphoneos/libAppCenterInstallerLib.a
  • リリース-iphoneos/libAppCenterInstallerLib.a
  • Debug-iphonesimulator/libAppCenterInstallerLib.a
  • リリース-iphonesimulator/libAppCenterInstallerLib.a

アプリケーションにネイティブ ライブラリを含めるために必要な追加の手順はありますか?

どんな助けでも大歓迎です。

4

2 に答える 2

2

メソッド「updateConnection」は InstallerPlugin で定義されています。これは単純に InstallerPlugin から呼び出される最初のメソッドだと思います。そのため、誤ってインストーラー プラグインを削除してしまった可能性があります。

ディレクトリー IBMAppCenter/apps/AppCenter/iphone/native/appCenterLib には、さまざまなバージョンの libAppCenterInstallerLib.a が含まれている必要があります。

  • デバッグ-iphoneos/libAppCenterInstallerLib.a
  • リリース-iphoneos/libAppCenterInstallerLib.a
  • Debug-iphonesimulator/libAppCenterInstallerLib.a
  • リリース-iphonesimulator/libAppCenterInstallerLib.a

メソッド updateConnection は libAppCenterInstallerLib.a に含まれています。

これらのライブラリーが欠落している場合は、IBM Worklight の元のインストール・ディレクトリーからそれらをコピーできます。

iphone または Android 環境を再生成する前に、IBMAppCenter/apps/AppCenter のネイティブ ディレクトリを削除しないでください。ネイティブ ディレクトリを削除すると、これらの必要なライブラリが削除され、AppCenter クライアントが機能しなくなります。

于 2013-12-18T14:32:13.937 に答える
0

Worklight 6.1 にアップグレードすることで、これを修正することができました。

Cordova の最近のバージョンでは、プラグイン メソッドのシグネチャが変更されました。

以下を使用して libAppCenterInstallerlib.a を抽出し、これを確認します。

ar -x libAppCenterInstallerlib.a

次に実行します:

nm IBMAppCenterPlugin.o

initInfo または updateConnection メソッドを探します。メソッド シグネチャに :withDict がある場合、これは Cordova の最近のバージョンでは推奨されていません。

Worklight 6.1 の AppCenter プロジェクトを使用すると、この問題は発生しなくなりました。

于 2014-01-08T14:46:32.920 に答える