在 iPad 上直接更新到 Windows 上的 Worklight Studio 开发服务器不起作用

Posted

技术标签:

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

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

    创建新的 WL 项目并将 iPad 添加为环境 在 application-descriptor.xml 中启用 worklightSettings 将下面的代码sn-p添加到main.js中 在 Worklight 开发服务器上运行 通过 eclipse 在 Xcode 中打开项目 在 Xcode 中清理项目并在 iPad 上运行 进行更改、重新部署并验证已收到直接更新 将项目复制到Windows机器并在eclipse中打开 在 Windows 机器上的 Worklight Development Server 上运行 通过 Settings.app 打开应用设置并启用使用自定义服务器 URL 用你的 windows 机器的 IP 替换你的 mac 的 IP 在 Windows 上:进行更改并重新部署 在 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,只要您将指向的项目及其工件存在。 顺便说一句,你能在没有斜杠错误的情况下再试一次吗? 【参考方案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 更新对此进行了测试,现在它可以工作了。

以上是关于在 iPad 上直接更新到 Windows 上的 Worklight Studio 开发服务器不起作用的主要内容,如果未能解决你的问题,请参考以下文章

更新到 Xcode 11 后,Xamarin iOS 应用程序在 iPad 上显示白色空白屏幕

怎么让ipad变成电脑的扩展屏幕呢?

如何用MAC上的Safari检查iPhone手机App运行的Html页面

可以从 Windows 机器在 iPad 上远程调试 javascript 吗?

已知的“iPad 上的 Safari”与“桌面 Safari”的差异列表

如何在Windows上配置并运行Nginx