我需要开发一个相对简单的应用程序,但它需要在PC和Mac上运行。
它还需要作为独立的桌面应用程序通过光盘或USB驱动器进行重新分发。
最初我认为AIR非常适合这个需求(它符合所有API要求),但困难在于使其可分发,因为该应用程序需要安装AIR运行时才能运行。
我发现Shu Player是一个选项,因为它似乎可以将AIR运行时与应用程序打包,并进行(静默?)安装。
然而,这似乎违反了Adobe的T&C(如此处所述),因此我不确定其是否合法。
另一个选择可能是Zinc,但我尚未测试过,因此不确定它是否完全符合要求。
您有什么建议或推荐我查看的内容吗?
非常感谢任何建议。
编辑: 关于mono的使用还有一些讨论(尽管没有真正的结论):这里 和 这里
编辑2: Titanium 也可能符合要求,我会去看看。
还有其他人有什么评论吗?
编辑3(一年后):实际上距离我发布这个问题已经快一年了,但似乎仍然有一些人偶尔遇到它,并且甚至在一年后也会提供答案。
我想更新一下这个问题。我没有时间去尝试最后提到的tcl/tk选项,时间限制和兼容不同操作系统版本的不确定性使我放弃了这个选项。
我曾经尝试过Titanium,虽然第一印象还好,但是他们真的更注重移动平台,而桌面实现方面则有些疏忽。此外,一些操作系统上存在某些Visual Studio运行时问题的报告(虽然现在记不清详情了)… 因此也被舍弃了。
最终我选择了XULRunner,主要吸引点如下:
- Firefox在大多数操作系统版本中都能开箱即用,所以我认为XULRunner应用程序很可能与大多数系统兼容。这为我节省了很多测试时间,结果证明它在所有平台上都运行得非常好,没有一个报告说无法启动该应用程序。
- 这是JavaScript,学习曲线极低。主要要解决的问题是了解额外的xpcom接口以及如何查询它们。
缺点是:
- 我认为解决错误有时是一项艰巨的任务,Venkman调试器有点笨重,最终我主要使用了控制台。
- SQLite接口对桌面应用程序来说是一个很好的资产,但当一些东西无法运行时,我经常难以找到相关的错误信息 - 也许是我的问题。
- 花了一点时间才弄清楚如何将应用程序打包为PC和Mac的独立应用程序。最终的方法是有一个“外壳”Mac应用程序和一个外壳PC应用程序,还有几个“编译”脚本,可以将外壳复制并将自定义源代码添加到正确位置。
- 最后一个潜在问题是,由于XULRunner应用程序的性质,您的源代码将与应用一起部署,如果您想保护自己的知识产权,可以使用混淆技术,但这是需要记住的事情。
总的来说,这是一个非常棒的跨平台应用程序平台。我强烈推荐它。