【问题标题】:Direct update on iPad to Worklight Studio development server on Windows not working在 iPad 上直接更新到 Windows 上的 Worklight Studio 开发服务器不起作用
【发布时间】:2014-08-04 09:55:41
【问题描述】:

我想在我的 Windows 机器上开发并通过直接更新将我的更改推送到 iPad (iOS 7.1.2) 测试设备。这在 WL 6.1 中对我有用,但自从我更新到 WL 6.2 后,我遇到了一些问题。以下场景描述了我的问题。

  1. 创建新的 WL 项目并将 iPad 添加为环境
  2. 在 application-descriptor.xml 中启用 worklightSettings
  3. 将下面的代码sn-p添加到main.js中
  4. 在 Worklight 开发服务器上运行
  5. 通过 eclipse 在 Xcode 中打开项目
  6. 在 Xcode 中清理项目并在 iPad 上运行
  7. 进行更改、重新部署并验证已收到直接更新
  8. 将项目复制到Windows机器并在eclipse中打开
  9. 在 Windows 机器上的 Worklight Development Server 上运行
  10. 通过 Settings.app 打开应用设置并启用使用自定义服务器 URL
  11. 用你的 windows 机器的 IP 替换你的 mac 的 IP
  12. 在 Windows 上:进行更改并重新部署
  13. 在 iPad 上重新启动应用程序

当我重新启动我的应用程序时,我在我的 Windows 机器上的 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.");
}

【问题讨论】:

  • 为什么不反其道而行之……?在 Windows 机器上创建您的项目。它将获取 Windows 机器的 IP 地址。将本机文件夹复制到 Mac,在 Xcode 中运行它...运行它等等。在 Windows 机器上进行更新。
  • 我不明白,如果您只能将服务器 URL 指向创建项目的机器,为什么还有更改服务器 URL 的选项?我们有多个开发人员,我们共享一台 iPad,那么这种设置是不可能的吗?如果我想将我的 iPad 连接到集成服务器怎么办?为什么在您创建项目的机器上很重要?
  • 整个功能并不是为了让您的开发环境更轻松。它最初是为壳牌开发而制作的。您尝试将其完全用于其他用途的事实很好,但不是它的意图。
  • 此外,您可以将其指向您想要的任何 Worklight Server,只要您将指向的项目及其工件存在。
  • 顺便说一句,你能在没有斜杠错误的情况下再试一次吗?

标签: ibm-mobilefirst worklight-runtime


【解决方案1】:

这确实是 Worklight 6.2 中的一个缺陷。

一方面,正如您在复制步骤中提到的,您需要从自定义服务器 URL 中删除前斜杠,以便能够连接到 Worklight Server(因为否则 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

我为此打开了一个缺陷;您需要create a PMR 才能收到修复,一旦可用(或等到它通过 IBM Fix Central / Eclipse Marketplace 公开可用)。

【讨论】:

  • 好的,我将创建一个 PMR。感谢您的支持。
  • 我已经用最新的 worklight studio 更新对此进行了测试,现在它可以工作了。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-12-16
  • 2018-11-24
  • 2015-02-05
  • 1970-01-01
  • 1970-01-01
  • 2012-11-17
  • 2017-09-30
相关资源
最近更新 更多