【问题标题】:Is it possible to deploy a Python application on the Mac App Store?是否可以在 Mac App Store 上部署 Python 应用程序?
【发布时间】:2011-06-23 20:10:00
【问题描述】:

Apple 是否接受 Python 应用程序在新的 Mac App Store 上分发?

如果是这样,应用程序应该如何打包? py2app 够用吗?还有什么?

【问题讨论】:

  • 开始赏金。有没有人真的这样做过?目前的答案很模糊。

标签: python macos app-store py2app


【解决方案1】:

我打包了 Pennywise,它可以在 Mac App Store 上找到。它基于 Virgil 的 moneyGuru,它使用 Python、PyObjC 和 py2app。

您必须关注Apple's process for preparing an application for submission to the Mac App Store。最重要的是,您需要向 Info.plist 添加正确的键,并删除任何自动更新机制,例如火花。这不是严格要求的,但您可能还想implement receipt checking。使用 Xcode 将使提交过程变得更加容易。您可以查看the moneyGuru source code 的示例,了解如何使用 Xcode 作为构建过程的最后一部分。

Py2app 在捆绑包中嵌入了 Python 框架的副本,所以我不知道 Apple 是否会批准只链接到系统框架的应用程序。虽然主二进制文件不支持 PPC,但 Apple 似乎并未检查嵌入式框架中二进制文件的架构。

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

【讨论】:

    【解决方案2】:

    我知道这是可能的,因为我知道应用商店中至少有一款基于 Python 的应用(“Pennywise”,它基于我自己的应用 moneyGuru,它使用 Python + PyObjc + py2app)。我不是自己做的,所以不清楚细节。

    【讨论】:

    • 太棒了,我刚刚给 Pennywise 开发人员发了电子邮件,他说他今天会在这里发布答案。
    【解决方案3】:

    我写了一篇全面的文章,解释了如何构建 Python 应用程序并将其提交到 Mac App Store。它包括我已成功提交的准系统示例应用程序的源代码和构建脚本。

    【讨论】:

    • 我觉得很有趣,你编写了一个 shell 脚本,而不是一个 python 脚本,来自动化将 python 脚本上传到 App Store 的过程的各个部分。
    • 是的,我想这有点好笑。由于大部分过程只是运行其他 CLI 工具并且没有太多繁重的验证或抽象,因此 shell 脚本可以按原样工作。 -- 我在其他项目中编写的更复杂的 shell 脚本最终被提升为 Python 脚本。
    【解决方案4】:

    是的,只要您遵守全套批准指南,这是可能的。例如,这意味着必须将 python 解释器捆绑到您的应用程序中。

    请参阅此处了解完整的要求列表:

    https://developer.apple.com/appstore/mac/resources/approval/guidelines.html

    【讨论】:

    • 这有帮助,但并没有真正涵盖如何打包成功提交(我的问题的第二部分)。
    • 说明书上说要使用 XCode 和相关的打包工具,我想。
    • "例如,这意味着必须将 python 解释器捆绑到您的应用程序中。"你从哪里得到这个要求? /System/Library/Frameworks/Python.framework 有一位非常出色的口译员
    • @Miles 规则表明应用程序不允许自动更新或强制更新外部组件。我将这一点与我的假设相结合,即大多数人都希望控制与他们的应用程序一起运行的 python 版本。
    • Py2App 将解释器嵌入到应用程序包中。
    【解决方案5】:

    很有可能。我的应用目前已列出:

    http://itunes.apple.com/us/app/quickwho/id419483981?mt=12&ls=1#

    与 py2app 捆绑在一起,不用担心。

    【讨论】:

      【解决方案6】:

      Apple 为带有 Xcode 的 Python 提供了 Build Applet 工具,因此它应该得到 App Store 的支持。 MacOS X 10.6.6 包括 Python 2.5 和 2.6 作为默认安装的一部分,您可以指定 /usr/bin/python2.5/usr/lib/python2.5

      【讨论】:

        猜你喜欢
        • 2011-12-10
        • 1970-01-01
        • 1970-01-01
        • 2011-09-15
        • 2011-06-15
        • 1970-01-01
        • 2023-03-05
        • 2020-06-24
        • 1970-01-01
        相关资源
        最近更新 更多