В соответствии с Руководством по проверке Mac App Store :
2.4.5 Приложения, распространяемые через Mac App Store, должны иметь в виду некоторые дополнительные требования:
(i) Они должны быть соответствующим образом помещены в «песочницу» и следовать документации по файловой системе macOS.Они также должны использовать только соответствующие API-интерфейсы macOS для изменения пользовательских данных, хранящихся в других приложениях (например, в закладках, адресной книге или записях календаря).
...
(iv) Они не могутзагрузите или установите автономные приложения, kexts, дополнительный код или ресурсы, чтобы добавить функциональность или значительно изменить приложение по сравнению с тем, что мы видим в процессе обзора.
(v) Они могут не запрашивать повышение привилегий root или использовать setuidАтрибуты.
«Песочница» уже исключает использование API, таких как AuthorizationCreate()
, и в любом случае item (v) довольно понятен.
Конечно, такое приложение, как, например, Parallels ( MAS-ссылка ) не может быть закодирована, даже не прибегая к повышению привилегий.Действительно, обычное (не MAS) приложение Parallels устанавливает как минимум 3 кекста, один из которых - гипервизор, без которого я считаю, что Parallels будет абсолютно бесполезным.Таким образом, они явно нарушают эти правила.
Если разработчик хотел написать приложение, которое, как и Parallels, нуждается в повышении привилегий и совершенно бесполезно без него, как бы разработчик обошел эти ограничения?Или это просто вопрос того, насколько Apple достаточно велика, чтобы Apple закрывала на это глаза во время процесса проверки?Можете ли вы запросить исключение для Apple?