构建 iOS 混合应用程序不会更新 worklight.plist 或 root.plist 文件
Posted
技术标签:
【中文标题】构建 iOS 混合应用程序不会更新 worklight.plist 或 root.plist 文件【英文标题】:Building iOS hybrid app does not update worklight.plist or root.plist file 【发布时间】:2014-04-30 03:00:43 【问题描述】:我在 macbook air(最新的 OSX)上运行 WL 6.1 (6.1.0.01.20140310-1427)。我有一个正在尝试连接到远程 WL 服务器的 dojo 混合应用程序。当我生成一个 ios 应用程序并将 worklight 服务器的地址更改为远程服务器时。它不会更改生成的 iOS 代码中的地址。我遵循的步骤是:
-
打开构建设置和部署目标..。在混合应用程序文件夹上。
选中构建应用程序以使用不同的 Worklight 服务器复选框。
输入新的服务器信息,点击确定
构建所有环境
构建完成后,我启动到 xcode 并查看 worklight.plist 和 Root.plist 文件。
此时他们仍在引用我的本地服务器。如果我将它们编辑为指向远程服务器,那么我的应用程序就可以工作。由于每次构建时都会重新生成这些文件,因此这不是一个有效的解决方案。
为了验证它在我的应用程序中什么都没有,我创建了一个默认的 dojo 混合应用程序。执行了我上面列出的步骤。当我启动到 xcode 时,Root.plist 和 worklight.plist 仍然有默认的本地服务器信息。
所以有趣的是。我也有一个win7系统运行同级别的WL开发者插件。我执行相同的步骤,并且 worklight.plist 文件在 Windows 上正确更新,而不是在 osx 中。唯一的其他区别是 win7 版本运行 jre 1.7_21,而 osx 运行 1.7_51。两者都处于 64 位模式。
【问题讨论】:
【参考方案1】:我相信 Mac 和 Windows 机器之间的真正区别在于第 5 步,即“启动 xcode”。如果您的意思是您实际上是在执行 Run As > Xcode 项目,请参见下文。此选项仅在 Mac 中可用,在 Windows 中不可用。
这是 Worklight 6.0.0.x 和 6.1.0.x 中的预期行为。
如果在将服务器地址更改为远程服务器(而不是本地开发服务器)并构建之后,然后选择 Run As > Xcode 项目,这会将服务器设置覆盖回本地开发服务器。
Run As > Xcode 项目执行 3 个操作:
-
构建应用并将其部署到 本地 Worklight Development Server
生成一个 Xcode 项目(这反过来会覆盖 worklight.plist 以使用本地服务器设置)
在 Xcode 中打开生成的 Xcode 项目
因此,如果您想将应用程序与远程服务器设置一起使用,那么在更改设置并构建应用程序之后:
-
从 your-iphone\package 文件夹中复制 .zip 文件
在文件系统中导航到 iphone\native 文件夹并双击 .xcodeproj 文件以直接在 Xcode 中打开它(就像 Run As > Xcode 项目所做的那样)
对于 Worklight 的未来版本,正在考虑简化行为,以便无论您选择本地还是远程服务器设置,运行方式 > Xcode 项目将始终使用您选择的设置。
【讨论】:
感谢您的解释。这是在哪里记录的?我一直在寻找,但没有找到任何提到这一点的东西。 这确实还没有记录。文档计划在下一个 Worklight 6.1.0.x 修订包的发布中对此进行更新。 Idan,您能否确认这是否在 6.2+ 中进行了简化/修复? 我可以确认精简,是的。以上是关于构建 iOS 混合应用程序不会更新 worklight.plist 或 root.plist 文件的主要内容,如果未能解决你的问题,请参考以下文章
为 iOS 和 Android 构建具有原生性能的混合 React 应用程序
用于 Visual Studio 的 Apache cordova 在构建期间不会更新 iOS 平台文件