从桌面软件包安装Safari扩展



我们有一个适用于OSX的桌面软件,以pkg安装包的形式在Mac App Store之外分发。我们想做的是在安装期间安装Safari扩展以及桌面应用程序。

我们已经完成的步骤:

  • 我们已经准备好了工具链,可以成功地为我们的桌面应用程序生成pkg软件包
  • 此外,已签名的safariextz包创建已准备就绪
  • 两者都可以单独安装,但最好一步将Safari扩展与桌面pkg安装程序打包在一起

pkgbuild或productbuild有可能实现这一点吗

如果您的扩展是Safari应用程序扩展,Safari应自动检测该扩展(并在Safari首选项扩展中显示),只要:

  1. 扩展位于应用程序捆绑包(PlugIns文件夹)中的相应路径中
  2. 您的应用程序捆绑包已安装在/Applications
  3. 您的应用程序捆绑包已使用您的开发人员ID正确签名

但是,扩展将默认为禁用,并且只有用户可以通过Safari首选项启用它。(没有API可以启用Safari应用程序扩展,尽管有API可以查询其状态,并打开扩展的Safari首选项。)


如果您的扩展是使用Safari extension Builder的旧方法创建的(我认为是这样,因为您提到了.safariextz),那么不幸的是,只有两种允许的安装方法:

  1. 单击扩展库中的"安装"按钮
  2. 通过在Safari中打开(.safariextz)文件。(Safari将提示用户确认安装。)

苹果警告:

重要信息:这些是安装Safari扩展的唯一允许方法。您不应该尝试以任何其他方式安装您的扩展。

事实上,他们已经采取措施,使使用创造性方法以任何其他方式安装扩展变得困难。(可能防止恶意应用程序/安装程序在用户不知情的情况下将扩展强加于用户。)

也就是说,你可以在不需要太多工作的情况下将现有扩展转换为Safari应用程序扩展,苹果强烈鼓励你这样做:

重要提示:从macOS 10.11.5上的Safari 10.0开始,Safari扩展被创建为Xcode中的应用程序扩展。新的扩展包在一个包含macOS的应用程序中,并在应用商店中分发和销售。如果您已经使用本文档中描述的方法创建了扩展,请考虑转换到新的扩展模型。

(注意:你不必通过Mac应用商店分发你的应用程序来提供Safari应用程序扩展-开发者ID签名的应用程序也应该可以工作。)

这将为您带来Safari应用程序扩展更容易安装流程的好处。

相关内容

  • 没有找到相关文章

最新更新