Почему электронное приложение может быть опубликовано в MAC App Store?

В соответствии с этим рекомендацией приложение Electron может быть опубликовано на MAC. Магазин приложений. Сам Electron основан на chromium и node.js, и оба они основаны на движке v8 js, который поддерживает JIT. Но JIT-компилятор, насколько я знаю, не разрешен MAC App Store. Так как же обойти это ограничение?


person finn    schedule 25.12.2018    source источник


Ответы (1)


Это не противоречит рекомендациям Apple для разработчиков, если двоичный файл остается прежним, а приложение продолжает работать так, как рекламируется в магазине.

https://developer.apple.com/programs/information/Apple_Developer_Program_Information_8_12_15.pdf

3.3.2 За исключением случаев, указанных в следующем абзаце, Приложение не может загружать или устанавливать исполняемый код. Интерпретируемый код может использоваться в Приложении только в том случае, если все скрипты, код и интерпретаторы упакованы в Приложение, а не загружены. Единственными исключениями из вышеизложенного являются сценарии и код, загружаемые и запускаемые встроенной платформой Apple WebKit или JavascriptCore, при условии, что такие сценарии и код не изменяют основной цели Приложения, предоставляя функции или функции, которые несовместимы с предполагаемым и рекламируемая цель Приложения, представленного в App Store.

Для Приложений OS X, представленных Apple для распространения в App Store, Приложение может устанавливать или запускать интерпретируемый или исполняемый код (например, подключаемые модули и расширения) для использования в сочетании с Приложением только при условии, что такой код: (a) не изменяет отправленный двоичный файл Приложения или иначе не будет считаться обновлением (как определено по собственному усмотрению Apple); и (b) не изменяет основную цель Приложения, предоставляя функции или функции, которые несовместимы с предполагаемой и рекламируемой целью Приложения, представленного в App Store.

person JVon    schedule 25.12.2018
comment
Разве это не против песочницы Apple? Я думал, что chrome для ios не может встроить v8, потому что JIT v8 нарушает ограничение песочницы Apple. - person finn; 25.12.2018
comment
iOS не разрешает JIT-компиляцию сторонними приложениями (например, V8). MacOS работает (и V8 работает там, как часть Electron или Chrome, самостоятельно или в других программах для встраивания). - person jmrk; 26.12.2018
comment
Если я разрабатываю приложение для Mac, которое встраивает v8 в качестве движка js, может ли App Store разрешить App Store загружать js-код и выполнять его во время работы приложения, как это делает react native (см. https://github.com/Microsoft/react-native-code-push)? Что, если приложение выберет javascriptcore вместо v8? - person finn; 26.12.2018