mac 的 Qt 应用程序未启动

Qt application for mac not being launched

我正在为 macOS 环境开发一个用 Qt 编写的应用程序。为了生成发布版本,我设置了外部服务器。

我看到了这个:

生成构建后,如果我下载并安装应用程序到应用程序文件夹,打开它时,首先我看到弹出窗口询问我是否确定打开从 Internet (Gatekeeper) 下载的应用程序,所以我单击打开,然后应用程序死亡。

如果我从终端中的 CommandLine 打开它,应用程序工作正常。

检查应用文件的属性我可以看到它有com.apple.quarantine。如果手动删除它,使用 xattr -dr com.apple.quarantine 应用程序打开没有任何问题

关于为什么它没有启动的任何想法? 谢谢提前

我的软件遇到了同样的问题,并提出了一个开发人员事件,从而找到了根本原因:

首次使用隔离属性启动时,Gatekeeper 将传递一个额外的命令行参数。 据我观察,它的形式是:

-psn_0_<some sequence of numbers>

例如

-psn_0_2445909

Qt 的 QCommandLineParser 拒绝未知参数并在这种情况下调用 exit(1);

因此有必要过滤 argc / argv 并在将它们传递给 Q{Core,Gui,}Application.

之前删除该虚假参数