2011-02-05 3 views
2

Я думал о создании приложения для Mac App Store, но задавался вопросом, будут ли они принимать программы, созданные в Objective-C, с помощью XCode.Требование к языку для Mac App Store

Я думал о создании многоплатформенной программы с помощью Qt, поэтому я могу выпускать версии для Windows и Mac.

ответ

1

Учитывая, что я не являюсь представителем Apple, и не видел примеров, в которых эти дебаты разыгрались еще в пользу одной или другой стороны, трудно дать вам окончательный ответ на этот вопрос. Вместо этого я расскажу, как выглядят соответствующие разделы Руководства по обзору магазинов Mac App Store и позволяю вам самому решать.

Первый раздел - раздел 2 «Функциональность». Это довольно широкая область темы, и мне кажется, что существует много возможностей для нарушений с использованием сторонней библиотеки графического интерфейса. Конечно, я также думаю, что все это можно обойти, если вы достаточно заинтересованы.

2,5     приложения, использующие непубличных API, будут отклонены

. , ,

2,14     приложение должно быть упаковано и представлены с использованием упаковочных технологий Apple, включенных в Xcode - не третья стороны монтажников не позволили

2.15     приложение должно быть самодостаточными, одиночные пакеты установки приложений, и не может установить код или ресурсы в общих местоположениях

2.16     Приложения, загружающие или устанавливающие дополнительный код или ресурсы для добавления функциональности или изменения их основного назначения , будут отклонены

. , ,

2,24     приложения, которые используют устаревшие или необязательно установленные технологии (например, Java, Розеттский) будет отклонен.

. , ,

2,29     приложения, которые не используют соответствующие API для Mac OS X для изменения пользовательских данных, хранящихся на других приложений (например, закладки, адресная книга или записи календаря) будут отклонены

Раздел 6 в «Пользовательском интерфейсе» также стоит рассмотреть приложение, использующее Qt. Я отказываюсь использовать библиотеку в Windows, потому что она не использует стандартные элементы GUI платформы. Я могу только предположить, что он делает то же самое на Mac, и пока неясно, как Apple отреагирует на это. (Я подозреваю, что альтернативные кросс-платформенные библиотеки графического интерфейса, которые ведут себя правильно и используют собственные виджеты, свободны и понятны здесь.)

6.1     Приложения должны соответствовать всем условиям и условиям, описанным в Руководстве по физическому интерфейсу Apple Macintosh.

. , ,

6,3     приложения, которые не используют обеспечиваемые системой элементов, таких как кнопки и иконки, правильно и, как описано в Руководстве по Apple Macintosh Human Interface будет отвергнут

. , ,

6,5     приложения, которые изменяют нативные элементы пользовательского интерфейса или поведения Mac OS X будет отвергнут

2

Чтобы уточнить, как требования к GUI разместил Коди Грея затруднит для не -тривиально Qt приложение будет принято, рассмотреть некоторые из Mac-специфических особенностей, которые должны быть выполнены или, по крайней мере, проверить правильность для случая простого текстового редактора:

  • правильных сочетаний клавиш, в том числе EMACS привязок, которые являются стандартными для Cocoa текста управляет
  • правильной структурой меню, в том числе:
    • предпочтения в меню приложения, а не в меню редактирования или инструментов
    • доступа к специальному инструменту символов из меню редактирования
    • Подменю «Открыть недавнее» в меню файла с четким вводом меню, в отличие от последнего списка файлов, встроенного в меню файлов в Windows.
    • подходящее меню «Окно», включая элемент «Принести все переднее»
    • справочное меню с интегралом Ted окно поиска
  • способность к применению оставаться открытой после того, как все окна/документы были закрыты
  • надлежащего поведения значка дока-станции, в том числе в список окна в контекстном меню
  • иконка бар файл заголовок окна , который можно перетаскивать и переносить на другие приложения или щелкнуть правой кнопкой мыши, чтобы получить меню каталогов на пути к файлу, чтобы вы могли открыть папку-заглушку в Finder

Как вы идете вниз этот список, вероятность того, что функция может быть легко реализована с помощью креста -платформенный инструментарий уменьшается. Все эти функции были опущены по крайней мере одним приложением Qt Mac в моем опыте. Некоторые из этих функций, вероятно, могут быть легко добавлены в Qt с помощью непубличных API. Тем не менее, большинство из этих функций бесплатны или почти тривиальны для реализации в проекте Cocoa, поэтому они практически повсеместны в родных приложениях, и Apple будет права отклонять ваше приложение, чтобы закрутить их.

Если ваше приложение является нетривиальным и не является полноэкранным OpenGL-игрой, тогда вам, вероятно, лучше написать собственный графический интерфейс с кросс-платформенным интерфейсом. Альтернативой является код, который заполнен #ifdef с, но все еще никогда не справляется со своей задачей.

+0

Да, из рекомендаций, которые показал Коди Грей, я также пришел к выводу, что графический интерфейс должен быть родным для MacOS, но я могу выполнять всю реальную работу в общей библиотеке. Итак, проголосовали за это. – staackuser2

+0

Yup.Это теоретически возможно, но слишком много работы, чтобы быть практичным. И по-прежнему нет никакой гарантии, что вы получите это точно, как ваш ответ указывает. Это хороший материал и действительно заставляет меня скучать по миру пользователей Mac, которые заботятся о том, что их программное обеспечение выглядит и действует, теперь, когда я занимаюсь разработкой Windows ... –

Смежные вопросы