是否可以将电子应用发布到Mac商店?

发布于 2025-02-04 11:14:52 字数 1735 浏览 3 评论 0原文

我正在尝试成功将我的电子应用提交到Mac商店。我想将其放入测试飞行中,类似于我如何提交相应的iOS应用程序。最终,我希望这两个过程都成为CI管道的一部分。 iOS版本已准备就绪。

对于电子应用程序,我正在使用电子构建器进行包装和签名,并利用电子构建器 - 毫无用处来超越Apple公证步骤。经过大约一周的潜水兔子洞,这些兔子洞成为了成熟的兔子沃伦都市,我终于有了配置环境,证书,plists和pixie dust的工作组合,我的管道成功地构建了,并公证了我的“ MAS”目标包。

我以为一旦我越过了相当地狱的公证步骤,我将几乎走出树林 - 毕竟,苹果“公证”了它(并给我发送了一封电子邮件以证明它)。但是,当我使用Apple Transporter应用将其发布到应用程序商店时(我现在手动使用此功能,直到我证明这项工作为止,然后稍后我将使用CLI命令来完成我的CI实现)应用程序被拒绝了5个问题。这些实际上是同一件事的变体:

  • 另一个应用程序已经在使用Electron.App'。
  • Electron.app/contents/frameworks/electron Helper(GPU).App'已在另一个应用程序中使用。
  • /Electron.app/contents/frameworks/electron helper(plugin).App'已在另一个应用程序中使用。
  • Electron.App/contents/frameworks/electron Helper(Renderer).App'已在另一个应用程序中使用。
  • Electron.app/contents/frameworks/electron Helper.App'已经在另一个应用程序中使用。

我认为电子构建器应该处理这些内部ID。 的“ MAS”块

    "mas": {
      "type": "distribution",
      "hardenedRuntime": false,
      "provisioningProfile": "embedded.provisionprofile",
      "entitlements": "build/entitlements.mas.plist",
      "entitlementsInherit": "build/entitlements.mas.inherit.plist",
      "entitlementsLoginHelper": "build/entitlements.mas.loginhelper.plist",
      "publish": null
    },

我认为我认为需要指定这些内部二进制文件所需 。也许不是。复制其他也必须放弃文档的人不一定是成功的保证。但是这些事情确实让我走了这么远。

我已经搜寻了其他互联网网站,当然,写得不好的官方文档来源,但我找不到答案。

在旅途中,我发生了这个博客让我想到我的思考即使我越过这部分,前方可能仍然有一条较长的坎路,事实证明这是一个死胡同。

我注意到许多开发人员评论说,他们选择放弃Mac商店,而只是使用自己的URL链接自我出版以供下载。至少,这似乎是一种耻辱,当然不是我的偏爱。

这使我们想知道这是否是可能的。许多帖子(更不用说文档)都包含过时的信息,而且很少有帖子比一年以上更新。许多事情发生了变化。也许每个人都扔了毛巾。我是在徒劳的任务吗?

I'm trying to successfully submit my Electron app to the Mac Store. I want to put it into TestFlight, similar to how I am submitting the corresponding iOS app. Ultimately, I want both of these processes to be part of a CI pipeline. The iOS version of this is ready to go.

For the Electron app, I'm using Electron-Builder to do the packaging and signing, and leveraging electron-builder-notarize to get past the Apple notarization step. After about a week of diving down several rabbit holes that became full-fledged rabbit warren metropolises, I finally have a working combination of configuration settings, certificates, plists, and pixie dust in place that my pipeline successfully builds and notarizes my "mas" target package.

I thought that once I had gotten past the rather hellish notarization step, I would be pretty much out of the woods -- after all, Apple 'notarized' it (and sent me an email to prove it). But when I use the Apple Transporter app to post it to the App Store (I'm using this manually for now until I prove this works, then later I'll use the CLI commands for it to complete my CI implementation) it reports the app is rejected with 5 issues. These are actually variations of the same thing:

  • Electron.app' is already in use by another application.
  • Electron.app/Contents/Frameworks/Electron Helper (GPU).app' is already in use by another application.
  • /Electron.app/Contents/Frameworks/Electron Helper (Plugin).app' is already in use by another application.
  • Electron.app/Contents/Frameworks/Electron Helper (Renderer).app' is already in use by another application.
  • Electron.app/Contents/Frameworks/Electron Helper.app' is already in use by another application.

I thought Electron-Builder was supposed to deal with these internal ids. My "mas" block of the config looks like

    "mas": {
      "type": "distribution",
      "hardenedRuntime": false,
      "provisioningProfile": "embedded.provisionprofile",
      "entitlements": "build/entitlements.mas.plist",
      "entitlementsInherit": "build/entitlements.mas.inherit.plist",
      "entitlementsLoginHelper": "build/entitlements.mas.loginhelper.plist",
      "publish": null
    },

which I believe is what is needed to specify that these inner binaries are signed. Perhaps not. Copying others who also had to abandon the docs is not necessarily a guarantee of success. But these things did get me this far.

I've scoured SO and other Internet sites, and of course the poorly written and often obscure official documentation sources, but I can't find the answer to this.

In my travels, I happened across this blog which makes me think that even if I get past this part, there may still be a long bumpy road ahead, and it may turn out to be a dead end.

I notice a lot of developers have commented they chose to abandon the Mac store and instead simply self-publish with their own URL link for download. That seems to be a shame, at the very least, and certainly not my preference.

It makes we wonder if this is even possible. Many of the posts (not to mention the docs) contain outdated information, and few posts are more recent than more than a year. Many things have changed. Maybe everyone threw in the towel. Am I on a futile quest?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

静若繁花 2025-02-11 11:14:52

我相信我找到了“有可能的?”的主要问题的答案。我可能仍然遇到其他问题,但是我发现了主要问题。

我的电子项目的结构与“电子Quick-start”模板的结构不同,因此电子构建器包装和签名步骤找不到在所有正常位置都在寻找的东西。

我不是100%确定我可以成功地将项目重建为“规范”格式,但这似乎是解决方案。

我能够创建一个基本的快速启动应用程序,并在几分钟之内将其上传到App Store,因此所有零件实际上都可以工作。该项目只需要正确的结构。

I believe I found the answer to the main question of "is it possible?" I may still run into other issues, but I've discovered the main problem.

My Electron project is in a different construction than that of the "Electron-quick-start" template, so the Electron-builder packaging and signing steps do not find what they are looking for in all the normal places.

I am not 100% sure I can successfully reconstruct my project into the 'canonical' format, but that appears to be the solution.

I was able to create a basic quick-start app and upload it to the App Store in a matter of minutes, so all the parts do in fact work. The project just need to be of the right construction.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文