【问题标题】:Cannot add a custom protocol to an application on the Mac neither with duti nor with plist无法使用 duti 或 plist 将自定义协议添加到 Mac 上的应用程序
【发布时间】:2020-12-29 07:26:44
【问题描述】:

我对 Mac 没有太多经验,因此我们将不胜感激。

第一次尝试在这里问How to map a custom protocol to an application on the Mac?

尝试借助 dutiPackages 安装程序的安装后脚本中运行添加我的自定义协议:

#!/bin/sh
## 
##  add_handlers.sh -- register UTI handlers for the MyApp
##
##  Requires the duti tool
##

./duti -s MyApp myapp

该处理程序出现在 RCDefaultApp 首选项窗格中,但是当从我的其他应用程序调用时,它会在地址栏中使用该协议打开 Safari,询问“您要允许此页面打开“MyApp”吗?单击允许显示错误:

Safari 无法打开指定的地址。 Safari 无法打开“myapp://”,因为 macOS 无法识别以“myapp:”开头的互联网地址。

当尝试从终端打开时:

deploy@mini-mac-mini ~ % open myapp://

LSOpenURLsWithRole() 失败,URL myapp:// 出现错误 -10810。

尝试借助应用程序包中的 plist 文件添加协议时出现同样的问题。

【问题讨论】:

    标签: macos macos-catalina url-scheme uti protocol-handler


    【解决方案1】:

    经过一番调查,我找到了问题的原因。

    事实证明,我分发 myapp 的 zip 存档删除了文件的可执行访问权限。

    在使用 zip 的功能保留属性(未成功)后,我使用了另一个脚本,将属性设置回解压缩文件:

    chmod "+x" "myapp.app/Contents/MacOS/myapp"
    

    之后 duti 工具开始按预期工作。

    【讨论】:

      猜你喜欢
      • 2010-10-03
      • 1970-01-01
      • 1970-01-01
      • 2014-04-23
      • 1970-01-01
      • 1970-01-01
      • 2018-02-03
      • 1970-01-01
      • 2016-10-23
      相关资源
      最近更新 更多