electron 如何发布电子应用程序到应用程序商店?

jljoyd4f  于 2023-02-10  发布在  Electron
关注(0)|答案(1)|浏览(290)

我已经将应用程序打包为mas文件,以便上传到应用程序商店。但是
1.从Xcode 11开始,他们不再提供应用程序加载器

  1. Electron不会生成XCode项目。
    在这种情况下,最好的解决办法是什么?
vltsax25

vltsax251#

***1.我们需要在www.example.com上生成证书,还需要导入到我们的密钥链中。developer.apple.com and also need to import into our keychain.

      • 苹果开发**证书
      • Apple分销**证书
      • Mac应用程序分发**证书(用于公证)
      • Mac安装程序分发**证书(用于公证)
  • (第三方)开发者ID应用程序证书(用于发布到应用程序商店)
  • (第三方)开发者ID安装程序证书(用于发布到应用程序商店)

然后,您需要从应用商店连接下载应用的配置文件。(将其放置在任何您想要的位置,但需要在配置中注明)
您可以在此处找到创建和下载应用程序的预配配置文件**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"
    },
}
    • 构建/权利.批量. 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>
    • 构建/权利.质量.继承. 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>

(as这个授权列表是基本的,你可以根据自己的需要进行配置,但是上面的授权列表是发布应用商店时必须的,特别是sand-box必须设置为苹果的要求)
运行npm run build后,这意味着(电子生成器)电子生成器将生成masmacpkg,然后

3.上传应用程序到Mac App Store。我使用了Mac App Store上的Transporter。(正如我之前提到的问题。从Xcode11开始,他们不再支持应用程序加载器)

    • 重要提示:Electron-builder从v22.5.0开始修复了签名问题,因此您需要使用更高版本。**

最后,这里是与当前electron-builder配合良好的项目结构。

参考:
https://medium.com/@jondot/shipping-electron-apps-to-mac-app-store-with-electron-builder-e960d46148ec
https://github.com/electron/electron-osx-sign/issues/188
https://github.com/electron/electron/issues/22656
希望这个能帮到你~
(When沙盒已启用应用程序停止工作。这是正常行为)

相关问题