Snap 无法处理使用 libappindicator 的应用程序,最终出现错误

Snap 无法处理使用 libappindicator 的应用程序,最终出现错误

我正在捕捉用 qt5 编写的应用程序并使用 libappindicator 为系统托盘图标提供一些功能。

创建 snap 并运行我的应用程序后,终端窗口中出现以下错误消息:

 libappindicator-WARNING **: Unable to connect to the Notification     
 Watcher: GDBus.Error:org.freedesktop.DBus.Error.AccessDenied: An 
 AppArmor policy prevents this sender from sending this message to  
 this recipient; type="method_call", sender=":1.153" (uid=1000 
 pid=19705 comm="deskie-snap ") 
 interface="org.kde.StatusNotifierWatcher" 
 member="RegisterStatusNotifierItem" error name="(unset)" 
 requested_reply="0" destination=":1.53" (uid=1000 pid=3134 
 comm="/usr/lib/x86_64-linux-gnu/indicator-application/in")

我还使用了 unity7 接口,该接口可以处理 libappindicator 与系统总线的连接。

我的 snapcraft.yaml 文件如下所示:

Pastebin 链接

请帮助。

答案1

请检查一下邮件列表帖子

您需要包含以下内容的 snapd这次提交包含在 snapd 2.18 中,如果您仍使用 snapd 2.17 或更低版本,则可以使用以下方法解决问题:

wget -qO- https://github.com/jdstrand/snapd/commit/95768199111.patch | \
  sudo patch \
 /var/lib/snapd/apparmor/profiles/snap.<your-snap>.<your-command>

sudo apparmor_parser -r \
 /var/lib/snapd/apparmor/profiles/snap.<your-snap>.<your-command>

您可能还需要包含indicator-gtk2(或 3)远程部分来处理前缀$SNAP,但如果您以 snap ind 思维构建事物,这可能是可选的。

相关内容