Mac App Store的语言要求

时间:2011-02-05 07:37:50

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

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

我正在考虑使用Qt制作程序多平台,因此我可以发布Windows和Mac版本。

2 个答案:

答案 0 :(得分:2)

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

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

在此列表中,使用跨平台工具包轻松实现该功能的可能性会降低。根据我的经验,至少有一个Qt Mac应用程序省略了所有这些功能。其中一些功能可能只能通过使用非公共API轻松添加到Qt中。但是,大多数这些功能在Cocoa项目中都是免费或几乎无关紧要的,所以它们在原生应用程序中几乎无处不在,而Apple拒绝你的应用程序是正确的。

如果你的应用程序不重要而且不是全屏OpenGL游戏,那么你可能最好用跨平台后端编写本机GUI。另一种选择是充满#ifdef s的代码,但仍然无法完成正确的工作。

答案 1 :(得分:1)

考虑到我不代表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上做同样的事情,还有待观察苹果公司将如何应对。 (我怀疑其他行为正常且使用本机小部件的跨平台GUI库在这里是免费且清晰的。)

  

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

     

。 。

     

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

     

。 。

     

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