
На iOS все приложения должны проходить через App Store. На macOS Mac App Store — это лишь один из способов распространения, и разработчики могут свободно публиковать свои приложения независимо на собственном веб-сайте. Это означает, что правила отклонения приложений на macOS не так болезненны, как для iPhone или iPad, но тем не менее они значительны.
Разработчики сообщают, что приложения, созданные с использованием Electron (фреймворк, позволяющий компаниям распространять веб-приложения в оболочке нативного приложения), теперь отклоняются автоматизированным процессом проверки Mac App Store.
Приложения, о которых идет речь, помечаются из-за использования вызовов приватных API. Эти вызовы API находятся не в самом приложении, а являются частью базового фреймворка Electron.
Обнаруженные символы приватных API включают:
CAContext
CALayerHost
NSAccessibilityRemoteUIElement
NSNextStepFrame
NSThemeFrame
NSURLFileTypeMappings
По-видимому, фреймворк Electron использует эти API уже много лет. Произошло то, что Apple обновила свои серверные процессы проверки приложений для обнаружения большего числа нарушений своих руководств по проверке приложений, и теперь это использование приватных API идентифицируется.
Отдельные разработчики приложений на Electron находятся в несколько беспомощном положении, поскольку проблема может быть решена только путем внесения изменений в сам код Electron. Похоже, что Electron не делает ничего экстраординарного, тем более ничего вредоносного. App Review не заботит, почему приложение использует приватные API; это жесткое правило (по крайней мере, теоретически).
На первый взгляд, для Electron должно быть относительно просто удалить ссылки на API и использовать альтернативные подходы. Просто работа еще не проделана, что означает, что люди, зависящие от Electron, сейчас в затруднительном положении.
Рост числа отклоненных приложений Electron некоторые интерпретируют как наступление на Electron после введения фреймворка Apple Catalyst, который помогает разработчикам быстро портировать нативные приложения для iPad на Mac. Это хорошая теория заговора, но она не имеет особого смысла. У Apple нет стимула, финансового или иного, заставлять разработчиков использовать Catalyst.
Если разработчики Mac не хотят отправлять свои приложения в App Store, они могут публиковать приложения независимо. Однако, начиная с macOS Catalina, приложения по-прежнему должны быть нотаризованы с использованием зарегистрированной учетной записи разработчика, чтобы соответствовать модели безопасности Gatekeeper и разрешить их запуск на компьютерах пользователей.
Нотаризация в основном заключается в создании цифровой подписи приложения, чтобы его нельзя было подделать, и оно могло быть идентифицировано системой позже. Это не мини-процесс проверки приложений, поэтому он не проверяет такие вещи, как использование приватных API.