electron/docs-translations/ru-RU/tutorial/mac-app-store-submission-guide.md

10 KiB
Raw Blame History

#Руководство по утверждению вашего приложения в App Store

Начиная с версии v0.34.0 Electron позволяет вам сформировать данные для App Store к вашему приложению. Данное руководство представляет собой пошаговую инструкцию по созданию данных файлов.

Помните, что когда Вы подаете свое приложение на рассмотрение в App Store Вы должны обладать аккаунтом разработчика, который стоит денег.

Как отправить свое приложение на рассмотрение в App Store

Последующие шаги подробно описывают, что и в какой последовательности Вам требуется сделать, но не гарантируют что Ваше приложение будет рассмотрено Apple. Мы так же рекомендуем вам прочитать официальную документацию по оформлению своего приложения и информации к нему чтобы пройти проверку в App Store.

Получение сертификата

Перед тем, как отправить свое приложение Вы должны получить сертефикат, как это описано в этом руководстве

Регистрируем свое приложение (подписываем)

После того, как Вы получили сертефикат, Вы можете упаковать свое прилоежние следуя правилам Application Distribution, а затем подписать свое приложение. Этот шаг является базовым, но подписывать свое приложение нам нужно всего лишь один раз.

Во-первых, нам нужно подготовить два файла:

child.plist:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
  <dict>
    <key>com.apple.security.app-sandbox</key>
    <true/>
    <key>com.apple.security.inherit</key>
    <true/>
  </dict>
</plist>

parent.plist:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
  <dict>
    <key>com.apple.security.app-sandbox</key>
    <true/>
    <key>com.apple.security.temporary-exception.sbpl</key>
    <string>(allow mach-lookup (global-name-regex #"^org.chromium.Chromium.rohitfork.[0-9]+$"))</string>
  </dict>
</plist>

Затем подписываем свое приложение, с помощью специального сценария: #!/bin/bash

# Имя вашего приложения.
APP="YourApp"
# Путь до вашейго приложения.
APP_PATH="/path/to/YourApp.app"
# Путь до вашего установочного пакета.
RESULT_PATH="~/Desktop/$APP.pkg"
# Имя сертификата которое вы хотите.
APP_KEY="3rd Party Mac Developer Application: Company Name (APPIDENTITY)"
INSTALLER_KEY="3rd Party Mac Developer Installer: Company Name (APPIDENTITY)"

FRAMEWORKS_PATH="$APP_PATH/Contents/Frameworks"

codesign -s "$APP_KEY" -f --entitlements child.plist "$FRAMEWORKS_PATH/Electron Framework.framework/Versions/A/Electron Framework"
codesign -s "$APP_KEY" -f --entitlements child.plist "$FRAMEWORKS_PATH/Electron Framework.framework/Versions/A/Libraries/libffmpeg.dylib"
codesign -s "$APP_KEY" -f --entitlements child.plist "$FRAMEWORKS_PATH/Electron Framework.framework/Versions/A/Libraries/libnode.dylib"
codesign -s "$APP_KEY" -f --entitlements child.plist "$FRAMEWORKS_PATH/Electron Framework.framework"
codesign -s "$APP_KEY" -f --entitlements child.plist "$FRAMEWORKS_PATH/$APP Helper.app/Contents/MacOS/$APP Helper"
codesign -s "$APP_KEY" -f --entitlements child.plist "$FRAMEWORKS_PATH/$APP Helper.app/"
codesign -s "$APP_KEY" -f --entitlements child.plist "$FRAMEWORKS_PATH/$APP Helper EH.app/Contents/MacOS/$APP Helper EH"
codesign -s "$APP_KEY" -f --entitlements child.plist "$FRAMEWORKS_PATH/$APP Helper EH.app/"
codesign -s "$APP_KEY" -f --entitlements child.plist "$FRAMEWORKS_PATH/$APP Helper NP.app/Contents/MacOS/$APP Helper NP"
codesign -s "$APP_KEY" -f --entitlements child.plist "$FRAMEWORKS_PATH/$APP Helper NP.app/"
codesign -s "$APP_KEY" -f --entitlements child.plist "$APP_PATH/Contents/MacOS/$APP"
codesign -s "$APP_KEY" -f --entitlements parent.plist "$APP_PATH"

productbuild --component "$APP_PATH" /Applications --sign "$INSTALLER_KEY" "$RESULT_PATH"

Если вы только начали разрабатывать под Mac OS X, то мы желаем Вам прочитать App SandBox

Обновление приложения

После того, как Вы подписали свое приложение вы сможете загрузить его в Itunes Connect для обработки, убедитесь, что вы создали запись перед отправкой.

Объяснение использования 'temporary-exception'

Когда песочница Apple временно исключила ваше приложение, согласно документации вам нужно объяснить насколько это важное исключение:

Примечание: если вы временно исключаете свое приложение, обязательно прочитайте и выполните рекомендации по правам на исключение. которые предоставляются в Itunes Connect. Самое важное указать почему ваше приложение должно быть исключенно.

Вы можете объяснить, что ваше приложение построено на основе браузера Chromium, который использует Mach из-за его мульти-процесс архитектуры. Но есть еще вероятность, что ваше приложение не удалось проверить именно из-за этого.

Отправка приложения на проверку

Следующие шаги описаны в официальной документации

#Ограничения в Mac App Store

Для того чтобы удовлетворить всем просьбам SandBox App Store , некотоыре из модулей были отключены:

  • crashReporter
  • autoUpdater и следующие проблемы были несколько изменены:
  • Захват видео на некоторых машинах может не работать
  • Некоторые специалньые возможности могут не работать
  • Приложения не будут в курсе изменения DNS Так же из за использования SandBox App Store некоторые возможности могут быть не доступны или ограничены, подробнее о ограничениях Вы можете прочитать в документации

Криптографические алгоритмы котоыре использует Electron

Смотря в какой стране и городе Вы находитесь Apple может потребовать от Вас задокументировать алгоритмы криптографии котоыре вы используете и если потребуется то попросит предоставить Вас копию регистрации вашего алгоритма шифрования.

Electron использует следующие алгоритмы шифрования:

  • AES - NIST SP 800-38A, NIST SP 800-38D, RFC 3394
  • HMAC - FIPS 198-1
  • ECDSA - ANS X9.622005
  • ECDH - ANS X9.632001
  • HKDF - NIST SP 800-56C
  • PBKDF2 - RFC 2898
  • RSA - RFC 3447
  • SHA - FIPS 180-4
  • Blowfish - https://www.schneier.com/cryptography/blowfish/
  • CAST - RFC 2144, RFC 2612
  • DES - FIPS 46-3
  • DH - RFC 2631
  • DSA - ANSI X9.30
  • EC - SEC 1
  • IDEA - “On the Design and Security of Block Ciphers” book by X. Lai
  • MD2 - RFC 1319
  • MD4 - RFC 6150
  • MD5 - RFC 1321
  • MDC2 - ISO/IEC 10118-2
  • RC2 - RFC 2268
  • RC4 - RFC 4345
  • RC5 - http://people.csail.mit.edu/rivest/Rivest-rc5rev.pdf
  • RIPEMD - ISO/IEC 10118-3

Если Вы используете необычный алгоритм, то вот статья о том как получить разрешение на использование собственного алгоритма шифрования в рамках закона США - статья