2017-01-27 96 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的安裝流程要簡單得多。

相關問題