我想在我的Windows机器上开发,并通过直接更新将我的更改推送到iPad (iOS 7.1.2)测试设备上。这对我在WL 6.1中工作,但自从我更新到WL 6.2我有一些问题。下面的场景描述了我的问题。
- 创建新的WL项目并添加iPad作为环境
- 在application-descriptor.xml中启用worklightSettings
- 将下面的代码片段添加到main.js
- 在Worklight Development Server上运行 在Xcode中通过eclipse打开项目
- 在Xcode中清理项目并在iPad上运行
- 进行更改,重新部署并验证接收到直接更新
- 将项目复制到Windows机器并在eclipse 中打开
- 在Windows机器上运行
- 通过设置打开应用程序设置。使用自定义服务器URL
- 将mac的IP替换为windows的IP
- 在windows上:修改并重新部署
- 在iPad上重启应用
当我重新启动我的应用程序时,我在Windows机器上的in 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.");
}
这确实是Worklight 6.2中的一个缺陷。
一方面,正如您在复制步骤中提到的,您需要从自定义服务器URL中删除前斜杠,以便能够连接到Worklight服务器(因为否则URL中有两个斜杠,并且连接失败)。
另一方面,客户端需要这个斜杠。
你可以在Wireshark中看到:
Bad: GET/test3directUpdate/test3/iphone/1.0?皮肤=缺省HTTP/1.1
好:GET/test3/directUpdate/test3/iphone/1.0?皮肤=缺省HTTP/1.1
我为这个打开了一个缺陷;您将需要创建一个PMR,以便在可用时接收修复(或者等待它通过IBM fix Central/Eclipse Marketplace公开可用)。