【发布时间】:2018-02-28 15:18:53
【问题描述】:
我正在尝试计划一个我想在 Mac App Store 上构建和发布的产品。
我想在 Electron 应用程序中使用 Go 程序中的很多功能,理想情况下我想使用 gRPC 在它们之间进行接口。我担心这会被应用审核流程拒绝,谁能告诉我:
- 是否允许您的主应用“调用”捆绑的 Go 程序?
- 如果是,我是否会被限制为 stdin/stdout(我担心要使用 gRPC,我的 Go 程序必须在启动时运行,这可能是不允许的)?
我试图通过阅读此https://developer.apple.com/app-store/review/guidelines/ 来确定上述问题的答案,但没有经验,希望你们中的一些人拥有我无法确定的经验。我想避免花费大量时间来构建一个会被拒绝的方式。
编辑/更新:
更新 - 做了一些进一步的研究和思考,我重新阅读了 App Store 审查指南的这一部分“2.4.5 (iii) 他们可能不会自动启动或在启动时自动运行其他代码或未经同意登录,也不生成在用户退出应用后未经同意继续运行的进程。”。
- 看着它,我将运行的“其他代码”会得到同意(作为应用程序包结构/包的一部分),我会对其进行设计,使其在用户退出应用程序时关闭。
我还发现an applications Xcode bundle structure 对“MacOS”目录有这样的评论:“MacOS (必需)包含应用程序的独立可执行代码。通常,此目录仅包含一个二进制文件,其中包含应用程序的主入口点和静态链接代码。但是,您也可以将其他独立的可执行文件(例如命令行工具)放在此目录中。”
- 看来,我的问题第 1 部分已得到解答,但 我对问题的第 2 部分仍不清楚。
编辑/更新 2:
在app sandboxing entitlement guide 我发现了这个“要使您的应用程序能够连接到另一台机器(或同一台机器上)上运行的服务器进程,请启用传出网络连接。 要启用打开网络侦听套接字以便其他计算机可以连接到您的应用,请允许传入网络连接。"
这意味着我可以使用 TCP/gRPC,但不是确定的……我会继续寻找确定的答案!
【问题讨论】:
-
看起来你可以通过 stdin/out 执行 grpc :stackoverflow.com/questions/37240385/…
-
但是如果你打算从 javascript 做 grpc 那么我还没有看到那个工作(还)
-
从我所看到的 gRPC 将在电子中工作(它在节点 grpc.io/docs/tutorials/basic/node.html 上工作)。这里有一个很棒的简单视频youtube.com/watch?v=jl2M1SfsoWk
标签: macos go electron grpc mac-app-store