Как я могу опубликовать приложение sh Electron в магазине приложений? - PullRequest
1 голос
/ 02 августа 2020

Я упаковал приложение в файл mas для загрузки в магазин приложений. Но

  1. Начиная с Xcode 11, они больше не предоставляют загрузчик приложений .
  2. Electron не генерирует проект XCode.

В таком случае какое решение будет лучшим?

1 Ответ

5 голосов
/ 03 августа 2020

1. Нам нужно создать сертификаты на сайте developer.apple.com, а также импортировать их в нашу связку ключей.

  • Apple Development Сертификаты
  • Apple Distribution Сертификаты
  • Ma c App Distribution Сертификаты (для нотариального заверения)
  • Ma c Installer Distribution Сертификаты (для нотариального заверения)
  • (третья сторона) Приложение ID разработчика Сертификаты (для публикации в магазине приложений)
  • (сторонняя сторона) Программа установки идентификатора разработчика Сертификаты (для публикации в магазине приложений)

enter image description here

And then you need to download your app's provisionprofile from the app store connect. (Place this wherever you wanna be but need to indicate this in configuration)

You can find create and download the app's provision profile here https://developer.apple.com/account/resources/profiles/list

2. Необходимо настроить electron-builder. Вот конфигурация.

`

{
    "productName": "your product",
    "appId": "com.my.first.app", //which can be found on your app store connect
    "directories": {
        "buildResources": "buildResources",
        "output": "release"
    },
    "files": ["main.js", "node_modules", "build" ], // include other necessary resources.
    "mac": {
        "type": "distribution",
        "target": ["mas", "pkg", "dmg"],
        "artifactName": "${productName}-${version}-${os}.${ext}",
        "category": "public.app-category.utilities",
        "provisioningProfile": "embedded.provisionprofile"
    },
    "mas": {
        "hardenedRuntime" : false, //IMPORTANT!!!!
        "type": "distribution",
        "category": "public.app-category.utilities",
        "entitlements": "build/entitlements.mas.plist",
        "entitlementsInherit": "build/entitlements.mas.inherit.plist"
    },
}

`

build / Entlements.mas. 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.application-groups</key>
        <string>[prefix (on your app store connect)].[app bundleID EX: com.desktop.app]</string>
        <key>com.apple.security.cs.allow-jit</key>
        <true/>
        <key>com.apple.security.cs.allow-unsigned-executable-memory</key>
        <true/>
        <key>com.apple.security.cs.allow-dyld-environment-variables</key>
        <true/>
    </dict>
</plist>

build / grantlements.mas.inherit.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>

(поскольку этот список прав является базовым c одним и вы можете настроить в соответствии с вашими потребностями, но приведенный выше вариант является обязательным для публикации магазина приложений. В частности, sand-box должен быть установлен как требование Apple)

После запуска npm run build, что означает (электронная сборка.) Electron -Builder сгенерирует mas, mac, pkg, а затем

3. Чтобы загрузить приложение в магазин приложений Ma c. Я использовал Transporter, доступный в магазине приложений Ma c. (Как я уже упоминал ранее в вопросе. Из Xcode11 они больше не поддерживают загрузчик приложений)

ВАЖНО: Electron-builder исправил проблему с подписью из v22. 5.0 Таким образом, вам необходимо использовать более высокую версию.

Наконец, вот структура проекта, которая хорошо работает с текущим электронным сборщиком. enter image description here

REFERENCE:

https://medium.com/@jondot / shipping-electronic-apps-to-ma c -app-store-with-electronics-builder-e960d46148e c

https://github.com/electron/electron-osx-sign/issues/188

https://github.com/electron/electron/issues/22656

Надеюсь, это вам очень поможет ~

(К сожалению: когда песочница включена, приложение останавливается работает. Команда Electron работает над этой задачей. Надеюсь, это скоро будет решено. https://github.com/electron/electron/issues/24936)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...