Mac App Store是否接受用Python/Java/Ruby编写的应用程序?

zho*_*shu 18 macos app-store

Mac App Store是否接受用Python/Java/Ruby编写的应用程序?

Bas*_*que 16

好消息

是的,您可以Java应用程序提交到Mac App Store.在过去并非如此,但至少截至2013年是这样.

一个例子是目前在Mac App Store中出售的成功的 MoneyDance个人理财应用程序.

坏消息

准备和提交您的应用程序既不简单也不容易.你必须跳过一些箍.

  • 您的应用程序不能依赖于Mac上安装的Java.您必须在Mac应用程序中包含JRE(Java运行时环境).
  • 您必须在Java应用程序周围编写一个瘦的Objective-C包装器.Web代码中提供了源代码和示例/教程.
  • 与任何其他应用程序一样,您必须通过Apple对任何Mac App Store应用程序所需的安全限制来解决复杂构建和部署问题的麻烦.

更多信息

顺便说一下,你可以在你的应用程序中使用SwingJavaFX.根据这些发行说明,JavaFX现在与Java捆绑在一起,至少从Java 7 Update 40开始.

Java 9

新发布的Java 9应该使用运行时包装应用程序的过程变得更加容易和更好.

模块

Java 9带来了"模块化",即Java平台模块系统(JPMS),其中与JVM捆绑在一起的大约5,000个类被分组为大约一百个称为模块的块.您只能包含包含特定应用程序实际使用的类的模块,而不是拖动每个库.如果您不使用JSONCORBA,则无需包含JSON或CORBA相关模块.

新的jlink工具可以帮助您,将一组模块及其依赖项组装和优化为自定义运行时映像.作为奖励,我们会执行一些链接时优化工作,以使您的应用更快地启动.

64位macOS系统以及其他平台支持这些功能.

本机编译

Java 9还为本机编译带来了新的支持,以构建针对特定硬件优化的应用程序.但这种能力是实验性的,尚未准备好用于生产.

更新,截至2018年

甲骨文宣布结束Web部署技术,包括之前推荐的桌面应用程序Java Web Start.现在,Oracle希望所有Java应用程序都与JVM捆绑在一起,例如jlink上面提到的工具.

因此,使用Java运行时包装应用程序的过程现在已成为主流,这对于Apple App Store来说是罕见的.Oracle希望以这种方式安装任何基于Java的桌面应用程序.


Dom*_*nic 5

是和否。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
Run Code Online (Sandbox Code Playgroud)

因此,虽然这意味着您不能依赖 Ruby 或 Python,但您可以使用像 MacRuby 这样的框架在 Ruby 中构建您的应用程序并嵌入 Ruby 解释器。就 MacRuby 而言,应用程序已通过这种方式成功提交到 Mac App Store。


Ben*_*son 2

AFAIK,Cocoa 将允许您包含用不同语言编写的代码(包括 Ruby 和 Python,但我不认为是 Java)。

检查 Apple SDK 以获取更多信息,但我相信(感谢 Cocoa)这不是问题。