1

Windows マシンで開発し、変更を直接更新によって iPad (iOS 7.1.2) テスト デバイスにプッシュしたいと考えています。これは WL 6.1 ではうまくいきましたが、WL 6.2 への更新以降、いくつかの問題が発生しています。次のシナリオでは、私の問題について説明します。

  1. 新しい WL プロジェクトを作成し、iPad を環境として追加します
  2. application-descriptor.xml で worklightSettings を有効にしました
  3. 以下のコード スニペットを main.js に追加します。
  4. Worklight Development Server で実行
  5. Eclipse を介して Xcode でプロジェクトを開く
  6. Xcode でプロジェクトをクリーンアップし、iPad で実行する
  7. 変更を加えて再デプロイし、ダイレクト アップデートが受信されていることを確認する
  8. プロジェクトを Windows マシンにコピーし、Eclipse で開きます
  9. Windows マシン上の Worklight Development Server で実行
  10. Settings.app からアプリの設定を開き、カスタム サーバー URL の使用を有効にします。
  11. Mac の IP を Windows マシンの IP に置き換えます。
  12. Windows の場合: 変更を加えて再デプロイする
  13. iPadでアプリを再起動する

アプリを再起動するとすぐに、Windows マシンの In the worklight 開発サーバー コンソールで次の例外が発生します。

[WARNING ] SRVE0190E: File not found: //apps/services/api/HelloDirectUpdate/ipad/init
[ERROR   ] FWLSE0048E: Unhandled exception caught: SRVE0190E: File not found: //apps/services/api/HelloDirectUpdate/ipad/init

カスタム サーバー URL を変更して最後のスラッシュを削除すると、更新が利用可能であるというメッセージが表示されます。しかし、更新をクリックしても、ダウンロード ポップアップのプログレス バーが動きません。Windows マシンと MAC の両方に、次の WL Studio バージョンがあります: platformVersion="6.2.0.00.20140724-2139"。私は何を間違っていますか?

main.js

function wlCommonInit(){
    WL.Client.connect({
        onSuccess: onConnectSuccess,
        onFailure: onConnectFailure
    });
}

function onConnectSuccess() {
    WL.Logger.debug("Connect success.");
}

function onConnectFailure() {
    WL.Logger.debug("Connect failed.");
}
4

1 に答える 1

2

これは確かに Worklight 6.2 の欠陥です。

一方では、再現手順で言及したように、Worklight Server に接続できるようにするために、カスタム サーバー URL から forweawrd スラッシュを削除する必要があります (そうしないと、URL に 2 つのスラッシュがあり、接続に失敗するため)。 .

一方、クライアントにはこのスラッシュが必要です。
これは Wireshark で確認できます。

悪い: GET / test3directUpdate /test3/iphone/1.0?skin=default HTTP/1.1
良い: GET / test3/directUpdate /test3/iphone/1.0?skin=default HTTP/1.1

私はこれについて欠陥をオープンしました。修正が利用可能になったら、修正を受け取るためにPMRを作成する必要があります (または、IBM Fix Central / Eclipse Marketplace を介して公開されるまで待ちます)。

于 2014-08-04T11:30:54.833 に答える