2017-01-27 59 views
0

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

步骤中,我们已经做了:

  • 我们有工具链准备成功生成pkg程序包为我们的桌面应用程序。
  • 还签署了safariextz包创建准备就绪。
  • 两者都可以单独安装,但将Safari扩展与桌面pkg安装程序一起打包即可。

是否可以用pkgbuild或productbuild做到这一点?

回答

2

如果你的扩展是一个Safari App Extension,Safari浏览器会自动检测到扩展(在显示它的Safari>>扩展),只要:

  1. 扩展位于您应用程序包中的适当路径(PlugIns文件夹)。
  2. 你的应用程序包安装在/Applications
  3. 您的应用程序包已正确使用您的开发者ID进行了签名。

但是,扩展将默认为禁用,只有用户可以通过Safari首选项启用它。 (没有API,以使Safari浏览器应用扩展,虽然有API来query its state,并open the Safari preferences for the extension。)


如果您的扩展使用创建的older method using Safari Extension Builder(我假定它是,既然你提到.safariextz ),然后不幸的是,only two permitted methods of installing it are

  1. 点击扩展程序库中安装按钮。
  2. 在Safari中打开(.safariextz)文件。 (Safari浏览器会提示用户确认安装。)

苹果警告:

重要:这些都是安装Safari浏览器扩展唯一允许的方式。您不应该试图以任何其他方式安装您的扩展。

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

这就是说,你可以将现有扩展到Safari浏览器应用扩展转换没有太多工作,并you are strongly encouraged by Apple to do so

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

(注:您不必通过Mac App Store中发布你的应用程序提供了Safari浏览器应用扩展 - 开发者ID签名的应用程序应该工作了。)

这将净你的好处Safari App Extensions的安装流程要简单得多。

相关问题