我正在考虑为Mac App Store创建一个应用程序,但是想知道他们是否只接受使用XCode在Objective-C中创建的程序。
我正在考虑使用Qt制作程序多平台,因此我可以发布Windows和Mac版本。
答案 0 :(得分:2)
要详细说明Cody Gray发布的GUI要求如何使得非平凡的Qt应用程序难以被接受,请考虑一些必须实施的Mac特定功能或至少检查其正确性简单文本编辑器的情况:
在此列表中,使用跨平台工具包轻松实现该功能的可能性会降低。根据我的经验,至少有一个Qt Mac应用程序省略了所有这些功能。其中一些功能可能只能通过使用非公共API轻松添加到Qt中。但是,大多数这些功能在Cocoa项目中都是免费或几乎无关紧要的,所以它们在原生应用程序中几乎无处不在,而Apple拒绝你的应用程序是正确的。
如果你的应用程序不重要而且不是全屏OpenGL游戏,那么你可能最好用跨平台后端编写本机GUI。另一种选择是充满#ifdef
s的代码,但仍然无法完成正确的工作。
答案 1 :(得分:1)
考虑到我不代表Apple,并且没有看到任何关于这场辩论已经发挥出来支持一方或另一方的例子,很难给出这个问题的确切答案。相反,我会发布看起来像Mac App Store评论指南的相关部分,让你自己决定。
首先是关于“功能”的第2节。这是一个相当广泛的主题领域,在我看来,使用第三方GUI库存在很多违规行为。当然,如果你有足够的兴趣,我也认为所有这些都可以解决。
对于使用Qt的应用程序,“用户界面”的第6部分也值得考虑。我拒绝在Windows上使用该库,因为它不使用标准平台GUI元素。我只能假设它在Mac上做同样的事情,还有待观察苹果公司将如何应对。 (我怀疑其他行为正常且使用本机小部件的跨平台GUI库在这里是免费且清晰的。)2.5 使用非公开API的应用将被拒绝
。 。 。
2.14 必须使用Xcode中包含的Apple包装技术打包和提交应用 - 没有第三方安装人员允许
2.15 应用必须是自包含的单个应用安装捆绑包,并且无法在共享位置安装代码或资源
2.16 下载或安装其他代码或资源以添加功能或更改其功能的应用程序 主要目的将被拒绝
。 。 。
2.24 使用已弃用或已选择安装的技术(例如,Java,Rosetta)的应用将被拒绝。
。 。 。
2.29 不使用相应的Mac OS X API修改其他用户数据的应用 应用程序(例如书签,地址簿或日历条目)将被拒绝
6.1 应用必须遵守Apple Macintosh人机界面指南中说明的所有条款和条件
。 。
6.3 未正确使用系统提供的项目(如按钮和图标)以及Apple Macintosh人机界面指南中所述的应用将被拒绝
。 。
6.5 将拒绝更改Mac OS X的本机用户界面元素或行为的应用