从桌面软件包安装Safari扩展

时间:2017-01-27 11:12:07

标签: safari-extension pkgbuild

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

我们已经完成的步骤:

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

pkgbuild或productbuild是否可以实现这一目标?

1 个答案:

答案 0 :(得分:3)

如果您的扩展程序为Safari App Extension,Safari应自动检测扩展程序(并在 Safari &gt; 偏好设置&gt; 扩展程序<中显示) / em>)只要:

  1. 扩展程序位于应用包中的相应路径(PlugIns文件夹)。
  2. 您的应用包已安装在/Applications
  3. 您的应用包已使用您的开发者ID进行了正确签名。
  4. 但是,扩展名默认为禁用,只有用户可以通过Safari偏好设置启用它。 (虽然有query its stateopen the Safari preferences for the extension的API,但没有启用Safari App Extension的API。)

    如果您的扩展程序是使用older method using Safari Extension Builder创建的(我认为是,因为您提到了.safariextz),那么很遗憾only two permitted methods of installing it are

      
        
    1. 单击“扩展程序库”中的“安装”按钮。
    2.   
    3. 在Safari中打开(.safariextz)文件。 (Safari将提示用户确认安装。)
    4.   
    苹果警告说:

      

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

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

    也就是说,您可以将现有的扩展程序转换为Safari App扩展程序,而无需太多工作,you are strongly encouraged by Apple to do so

      

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

    (注意:您不必通过Mac App Store分发您的应用程序以提供Safari App扩展程序 - 开发者ID签名的应用程序也应该有效。)

    这将为您提供更加简单的Safari App Extensions安装流程的好处。