能否在Mac应用商店上部署Python应用程序?

50

苹果是否接受Python应用程序在新的Mac应用商店分发?

如果是,该应用程序应如何打包?py2app足够吗?还是需要其他工具?


1
开始悬赏。有人真的做过吗?目前的答案都很模糊。 - FogleBird
6个回答

59

我将Pennywise打包并上架至Mac App Store。它基于Virgil的moneyGuru,使用Python、PyObjC和py2app。

您需要遵循苹果准备应用程序提交到Mac App Store的过程。最重要的是,您需要为Info.plist添加正确的键,并删除任何自动更新机制,例如Sparkle。严格来说不是必需的,但您可能还想实现收据检查。使用Xcode将使提交过程更加简单。您可以查看moneyGuru源代码以了解如何在构建过程的最后一部分中使用Xcode的示例。

Py2app会在捆绑包中嵌入Python框架的副本,因此我不知道苹果是否会批准仅链接到系统框架的应用程序。虽然主要二进制文件无法支持PPC,但苹果似乎不会检查嵌入式框架中二进制文件的体系结构。

最后一个警告:我不建议使用此过程编写新应用程序。使用Python、PyObjC和py2app会严重复杂化构建过程并引入其他依赖项。


那么你会推荐什么呢? - tikej

9

我知道这是可能的,因为我知道至少有一个基于Python的应用程序在应用商店中(“Pennywise”),它是基于我的应用程序moneyGuru开发的,后者使用Python + PyObjc + py2app。我自己没有做过,所以我不确定细节。


2
太棒了,我刚给 Pennywise 的开发者发送了电子邮件,他说今天会在这里发布答案。 - FogleBird

6

我写了一篇综合性文章,解释如何构建并提交 Python 应用程序至 Mac App Store。其中包含源代码和构建脚本,用于一个典型示例应用程序,我已经成功地提交了该应用程序。


我觉得很有趣,你写了一个 shell 脚本来自动化上传 Python 脚本到 App Store 的各个部分,而不是用 Python 脚本。 - ArtOfWarfare
是的,我想这有点有趣。由于大部分过程只是运行其他CLI工具,并没有太多的重型验证或抽象,因此Shell脚本可以正常工作。在其他项目中编写的更复杂的Shell脚本最终被提升为Python脚本。 - David Foster

5

这有所帮助,但并没有真正涵盖如何打包成功的提交(我的问题的第二部分)。 - FogleBird
指令说要使用XCode和相关的打包工具,我想。 - blueberryfields
2
这意味着Python解释器必须被捆绑到您的应用程序中,例如。你是从哪里得到这个需求的?/System/Library/Frameworks/Python.framework有一个完美的解释器。 - Miles
1
@Miles,规则表明应用程序不允许自动更新或强制更新外部组件。我结合了我的假设,即大多数人都希望控制运行其应用程序的Python版本。 - blueberryfields
2
Py2App将解释器嵌入应用程序包中。 - Kenneth Reitz

3

1

苹果公司为Python提供了Build Applet工具,并与Xcode一起使用,因此应该得到App Store的支持。MacOS X 10.6.6默认安装了Python 2.5和2.6,您可以指定/usr/bin/python2.5/usr/lib/python2.5


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接