【发布时间】:2022-06-12 03:09:02
【问题描述】:
我正在尝试将我的 Electron 应用程序成功提交到 Mac Store。我想把它放到TestFlight中,类似于我提交相应iOS应用的方式。最终,我希望这两个流程都成为 CI 管道的一部分。 iOS 版本已准备就绪。
对于 Electron 应用,我使用 Electron-Builder 进行打包和签名,并利用 electron-builder-notarize 来通过 Apple 公证步骤。在潜入几个成为成熟的兔子沃伦大都市的兔子洞大约一周后,我终于有了一个配置设置、证书、plist 和 pixie dust 的工作组合,我的管道成功地构建了 并进行了公证 em> 我的“mas”目标包。
我认为,一旦我通过了相当可怕的公证步骤,我就会走出困境——毕竟,Apple 对其进行了“公证”(并给我发了一封电子邮件来证明这一点)。但是当我使用 Apple Transporter 应用程序将它发布到 App Store 时(我现在手动使用它,直到我证明它有效,然后我将使用 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' 已被另一个应用程序使用。
我认为 Electron-Builder 应该处理这些内部 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
},
我相信这是指定这些内部二进制文件已签名所需要的。也许不是。复制其他也不得不放弃文档的人不一定能保证成功。但这些事情确实让我走到了这一步。
我搜遍了 SO 和其他 Internet 站点,当然还有那些写得不好且经常晦涩难懂的官方文档来源,但我找不到这个问题的答案。
在我的旅行中,我偶然遇到了 this blog ,这让我觉得即使我过了这一段,前面可能还有很长的颠簸路,结果可能是一条死胡同。
我注意到许多开发人员评论说他们选择放弃 Mac 商店,而是简单地使用自己的 URL 链接自行发布以供下载。至少,这似乎是一种耻辱,而且肯定不是我的偏好。
这让我们怀疑这是否可能。许多帖子(更不用说文档)包含过时的信息,很少有帖子更新超过一年。很多事情都变了。也许每个人都认输了。我是在徒劳的追求吗?