【发布时间】:2023-03-05 15:24:01
【问题描述】:
Mac App Store 是否接受用 Python/Java/Ruby 编写的应用程序?
【问题讨论】:
-
Java?不,其他两个目前未知。
-
@MattGreer 您的评论不再正确。在此页面上查看我的答案。截至 2012-2013 年(至少),Mac App Store 确实承认基于 Java 的应用程序。
Mac App Store 是否接受用 Python/Java/Ruby 编写的应用程序?
【问题讨论】:
好消息
是的,您可以向 Mac App Store 提交 Java 应用程序。过去不是这样,但至少在 2013 年是这样。
一个例子是成功的MoneyDance个人理财应用程序,目前available for sale在Mac App Store中。
坏消息
准备和提交您的应用既不简单也不容易。你必须跳过一些障碍。
更多信息
顺便说一句,您可以在应用中同时使用Swing 和JavaFX。 JavaFX 现在与 Java 捆绑在一起,至少从 Java 7 Update 40 开始,根据这些 Release Notes。
新发布的 Java 9 应该使使用运行时包装应用程序的过程变得更加容易和更好。
Java 9 带来了“模块化”Java Platform Module System (JPMS),其中与 JVM 捆绑在一起的大约 5,000 个类被分组为大约一百个称为 modules 的块。您可以仅包含包含特定应用程序实际使用的类的模块,而不是拖拽每个库。如果您不使用JSON 或CORBA,则无需包含JSON 或CORBA 相关模块。
新的jlink 工具可以为您完成这项工作,将一组模块及其依赖项组装和优化到自定义运行时映像中。作为奖励,我们会执行一些链接时优化工作以加快您的应用启动速度。
这些功能在 64 位 macOS 系统以及其他平台上受支持。
Java 9 还带来了对本机编译的新支持,以构建针对特定硬件优化的应用程序。但是这种能力是实验性的,还没有准备好用于生产。
Oracle 拥有announced the end of web deployment 技术,包括Java Web Start,这是以前推荐的桌面应用程序途径。所以现在,Oracle 希望所有 Java 应用程序都与 JVM 捆绑交付,就像上面提到的 jlink 工具一样。
因此,使用 Java 运行时包装应用程序的过程对于 Apple App Store 来说是罕见的,现在已成为主流。 Oracle 希望以这种方式安装任何基于 Java 的桌面应用程序。
【讨论】:
是的,不是的。 Apple 不关心您的应用程序是用什么语言编写的,但它不能依赖或安装您提交给 Apple 的二进制文件之外的任何内容。相关指南如下:
2.14
Apps must be packaged and submitted using Apple's packaging technologies included in Xcode - no third party installers allowed
2.15
Apps must be self-contained, single application installation bundles, and cannot install code or resources in shared locations
2.16
Apps that download or install additional code or resources to add functionality or change their primary purpose will be rejected
因此,虽然这意味着您不能依赖 Ruby 或 Python,但您可以使用 MacRuby 之类的框架在 Ruby 中构建您的应用程序并嵌入 Ruby 解释器。对于 MacRuby 来说,应用已经通过这种方式成功提交到 Mac App Store。
【讨论】:
鲁比?是的!
Apple 已经接受了我用 MacRuby 编写的一个应用程序。
【讨论】:
AFAIK,Cocoa 将允许您包含用不同语言编写的代码(包括 Ruby 和 Python,但我不认为是 Java)。
查看 Apple SDK 了解更多信息,但我相信(感谢 Cocoa)这不是问题。
【讨论】:
对于 Python 应用程序,我写了一篇综合文章,解释如何构建这些应用程序并将其提交到 Mac App Store。它包括我已成功提交的准系统示例应用程序的源代码和构建脚本。
【讨论】:
如果您将 Java 应用程序捆绑到 mac 应用程序中,则可能是 Java。
【讨论】: