【问题标题】:Language requirement for Mac App StoreMac App Store 的语言要求
【发布时间】:2011-06-21 19:11:43
【问题描述】:

我正在考虑为 Mac App Store 创建一个应用程序,但想知道他们是否只接受使用 XCode 在 Objective-C 中制作的程序。

我正在考虑使用 Qt 使程序多平台,这样我就可以发布 Windows 和 Mac 版本。

【问题讨论】:

    标签: macos appstore-approval mac-app-store


    【解决方案1】:

    要详细说明 Cody Gray 发布的 GUI 要求如何使非平凡的 Qt 应用程序难以被接受,请考虑一些必须实现或至少检查其正确性的 Mac 特定功能一个简单的文本编辑器的例子:

    • 正确的键盘快捷键,包括 Cocoa 文本控件标准的 emacs 键绑定
    • 正确的菜单结构,包括:
      • 应用程序菜单中的首选项,而不是编辑或工具菜单中
      • 从编辑菜单访问特殊字符工具
      • 文件菜单的“打开最近”子菜单,具有清晰的菜单条目,与 Windows 上的文件菜单中嵌入的最近文件列表相反
      • 适当的窗口菜单,包括“全部放在前面”项
      • 带有集成搜索框的帮助菜单
    • 关闭所有窗口/文档后应用程序保持打开状态的能力
    • 正确的停靠图标行为,包括上下文菜单中的窗口列表
    • 窗口标题栏文件图标,可以拖放到其他应用程序上,也可以右击得到文件路径中的目录菜单,这样就可以在Finder中打开封闭文件夹

    随着您查看此列表,使用跨平台工具包轻松实现该功能的可能性会降低。根据我的经验,至少有一个 Qt Mac 应用程序忽略了所有这些功能。其中一些功能可能只能通过使用非公共 API 轻松添加到 Qt。然而,这些功能中的大部分都是免费的,或者在 Cocoa 项目中实现起来几乎是微不足道的,因此它们在原生应用程序中几乎无处不在,Apple 拒绝你的应用程序是正确的,因为它们把它们搞砸了。

    如果您的应用程序不平凡并且不是全屏 OpenGL 游戏,那么您最好编写具有跨平台后端的本机 GUI。另一种方法是充满#ifdefs 但仍然无法完全正确完成工作的代码。

    【讨论】:

    • 是的,根据 Cody Gray 展示的指南,我也得出结论,GUI 必须是 MacOS 原生的,但我可以在共享库中完成所有实际工作。所以,投票赞成这一点。
    • 是的。理论上是可行的,但实际操作太多。正如您的回答所指出的那样,仍然不能保证您会完全正确。这是好东西,真的让我怀念那些关心他们的软件外观和行为的 Mac 用户的世界,现在我正在做 Windows 开发......
    【解决方案2】:

    考虑到我不代表 Apple,并且还没有看到任何支持一方或另一方的辩论的例子,很难给你一个明确的答案来回答这个问题。相反,我将发布类似于 Mac App Store 审查指南的相关部分的内容,让您自己决定。

    首先是关于“功能”的第 2 节。这是一个相当广泛的主题领域,在我看来,使用第三方 GUI 库有很多违规的可能性。当然,如果您有足够的兴趣,我也认为所有这些都可以解决。

    2.5 使用非公开 API 的应用将被拒绝

    。 . .

    2.14 必须使用 Xcode 中包含的 Apple 打包技术打包和提交应用 - 不允许第三方安装程序

    2.15 应用必须是独立的、单一的应用安装包,并且不能在共享位置安装代码或资源

    2.16   下载或安装额外代码或资源以添加功能或更改其功能的应用 主要目的将被拒绝

    。 . .

    2.24   使用已弃用或可选安装的技术(例如 Java、Rosetta)的应用将被拒绝。

    。 . .

    2.29   不使用适当的 Mac OS X API 来修改其他人存储的用户数据的应用 应用程序(例如书签、地址簿或日历条目)将被拒绝

    对于使用 Qt 的应用程序,关于“用户界面”的第 6 节也值得考虑。我拒绝在 Windows 上使用该库,因为它不使用标准平台 GUI 元素。我只能假设它在 Mac 上做同样的事情,Apple 将如何反应还有待观察。 (我怀疑行为正确并使用本机小部件的替代跨平台 GUI 库在这里是免费且清晰的。)

    6.1 应用必须遵守 Apple Macintosh 人机界面指南中解释的所有条款和条件

    。 . .

    6.3 未按照 Apple Macintosh 人机界面指南中所述正确使用系统提供的项目(例如按钮和图标)的应用将被拒绝

    。 . .

    6.5  更改 Mac OS X 原生用户界面元素或行为的应用将被拒绝

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-06-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多