其他擴充功能發布選項

所有 Chrome 擴充功能都必須直接從 Chrome 線上應用程式商店發布,或是使用下述機制發布。如未遵守上述任一發布方法,就會構成違反 Chrome 擴充功能政策,且可能導致擴充功能和/或軟體發布的應用程式遭標記為垃圾軟體

使用者通常會從 Chrome 線上應用程式商店安裝擴充功能,但在某些情況下,您可能會想透過其他方式安裝擴充功能。以下為兩種一般情況:

  • 擴充功能與一些其他軟體相關聯,且使用者每次安裝該軟體時,系統都會安裝擴充功能。
  • 網路管理員想在整個機構中安裝相同的擴充功能。

不是透過 Chrome 線上應用程式商店安裝的擴充功能稱為外部擴充功能。 如果開發人員想要將擴充功能發布為其他軟體的安裝程序,或網路管理員希望在整個機構中發布擴充功能,Google Chrome 支援下列擴充功能安裝方法:

  • 使用偏好設定 JSON 檔案 (僅適用於 Mac OS X 和 Linux)
  • 使用 Windows 登錄檔 (僅適用於 Windows)

這兩種方式都支援安裝由 update_URL 代管的擴充功能。在 Windows 和 Mac 中,update_URL 必須指向必須代管擴充功能的 Chrome 線上應用程式商店。

Linux 中的偏好設定檔案可以指向你代管擴充功能時所用的伺服器。 偏好設定 JSON 檔案也支援從使用者 Linux 電腦上的 .crx 擴充功能檔案安裝擴充功能。

事前準備

首先,請在 Chrome 線上應用程式商店中publish擴充功能,或是封裝 .crx 檔案,並確認安裝成功。

如果是透過更新網址安裝,請確認擴充功能已正確代管

編輯偏好設定檔案或註冊資料庫之前,請注意下列事項:

  • 擴充功能 .crx 檔案的指定位置,或提供擴充功能的更新網址
  • 擴充功能的版本 (來自資訊清單檔案或 chrome://extensions 頁面)
  • 擴充功能的 ID (由已封裝的擴充功能從 chrome://extensions 頁面載入)

以下範例假設版本為 1.0,且 ID 為 aaaaaaaaaabbbbbbbbbbcccccccccc

使用偏好設定檔案

  1. 如果要從 Linux 上的檔案安裝,請將 .crx 擴充功能檔案提供給要安裝擴充功能的機器。(複製到本機目錄或網路共用區,例如 \\server\share\extension.crx/home/share/extension.crx)。
  2. 在下列其中一個資料夾中建立具有以下名稱的檔案:aaaaaaaaaabbbbbbbbbbcccccccccc.json,其中檔案名稱 (不含副檔名) 會對應至擴充功能 ID。位置會因作業系統而異。

    Mac OS X:

    適用於特定使用者: ~USERNAME/Library/Application Support/Google/Chrome/External Extensions/ 適用於所有使用者:/Library/Application Support/Google/Chrome/External Extensions/

    只有在路徑中的每個目錄的擁有者是 root 、擁有 adminwheel 群組,且並非可寫入的情況下,系統才讀取所有使用者的外部擴充功能檔案。路徑也不得含有符號連結。這些限制可防止未經授權的使用者為所有使用者安裝擴充功能。詳情請參閱疑難排解

    Linux:

    /opt/google/chrome/extensions/

    /usr/share/google-chrome/extensions/

    注意:請視需要使用 chmod,確保 aaaaaaaaaabbbbbbbbbbcccccccccc.json 檔案可在全球讀取。

  3. 僅限 Linux:如要從檔案安裝,請在上述建立的檔案中,使用名為「external_crx」和「external_version」的欄位指定擴充功能的位置和版本。

    • 示例:
    • json { "external_crx": "/home/share/extension.crx", "external_version": "1.0" }
    • 注意:您必須逸出各個 \` character in the location. For example,\server\share\extension.crxwould be"\\server\share\extension.crx"`。
    • 如果要透過更新網址安裝,請使用「external_update_url」欄位指定擴充功能的更新網址。
    • 從本機 .crx 檔案安裝的範例 (僅限 Linux):
    • json { "external_update_url": "http://myhost.com/mytestextension/updates.xml" }
    • Chrome 線上應用程式商店 (Mac 和 Linux) 安裝範例:
    • json { "external_update_url": "https://clients2.google.com/service/update2/crx" }
    • 如果您只要為部分瀏覽器語言代碼安裝擴充功能,可以在「supported_locale」欄位列出支援的語言代碼。語言代碼可以指定「en」等父項語言代碼,在這種情況下,系統會為所有英文語言代碼 (例如「en-US」、「en-GB」等) 安裝擴充功能。如果選取擴充功能不支援的其他瀏覽器語言代碼,系統會解除安裝外部擴充功能。如果缺少「supported_locales」清單,系統就會針對所有語言代碼安裝擴充功能。
    • 示例:
    • json { "external_update_url": "https://clients2.google.com/service/update2/crx", "supported_locales": [ "en", "fr", "de" ] }
  4. 儲存 JSON 檔案。

  5. 啟動 Google Chrome 並前往 chrome://extensions,應該會列出該擴充功能。

排解 Mac OS 權限問題

在 Mac OS 上,只有在檔案系統權限防止未經授權的使用者變更外部擴充功能時,系統才會讀取所有使用者的外部擴充功能檔案。如果在 Chrome 啟動時沒有看到安裝的外部擴充功能,則可能是外部擴充功能偏好設定檔案的權限問題。如要確認這是否為問題所在,請按照下列步驟操作:

  1. 啟動控制台程式。只要前往「/Applications/Utilities/Console」即可找到這項工具。
  2. 如果控制台最左側的圖示顯示「顯示記錄清單」,請按一下該圖示。左側會顯示第二欄。
  3. 按一下左側窗格中的 [Console Messages]。
  4. 搜尋「Can not read external extensions」(無法讀取外部擴充功能) 的字串。如果讀取外部擴充功能檔案時發生問題,系統會顯示錯誤訊息。請查看上方的其他錯誤訊息,應該會說明問題。舉例來說,如果您看到以下錯誤訊息:「Path /Library/Application Support/Google/Chrome 屬於錯誤的群組」,您必須使用 chgrp 或 Finder 的「Get Info」對話方塊,將目錄的版主變更為「Administrator」群組。
  5. 修正問題後,請重新啟動 Chrome。測試外部擴充功能現已安裝。單一權限錯誤可能會使 Chrome 不會偵測到第二個錯誤。如果未安裝外部擴充功能,請重複執行上述步驟,直到主控台應用程式發生錯誤為止。

使用 Windows 登錄檔

  1. 在登錄檔中尋找或建立以下金鑰:
    • 32 位元 Windows:HKEY_LOCAL_MACHINE\Software\Google\Chrome\Extensions
    • 64 位元 Windows:HKEY_LOCAL_MACHINE\Software\Wow6432Node\Google\Chrome\Extensions
  2. 在「Extensions」金鑰下方,使用與擴充功能 ID 相同的名稱 (例如 aaaaaaaaaabbbbbbbbbbcccccccccc) 建立新的金鑰 (資料夾)。
  3. 在擴充功能金鑰中建立「update_url」屬性,並設為以下值:「https://clients2.google.com/service/update2/crx」(這會指向 Chrome 線上應用程式商店中擴充功能的 crx):

    {
      "update_url": "https://clients2.google.com/service/update2/crx"
    }
    
  4. 啟動瀏覽器並前往 chrome://extensions,應該就能看到擴充功能。

正在更新及解除安裝

每次瀏覽器啟動時,Google Chrome 會掃描偏好設定和登錄檔中的中繼資料項目,然後對已安裝的外部擴充功能進行必要的變更。

如要將擴充功能更新為新版本,請更新檔案,然後在偏好設定或登錄檔中更新版本。

如要解除安裝擴充功能 (例如軟體已解除安裝),請移除偏好設定檔案 (aaaaaaaaaabbbbbbbbcccccccccc.json) 或註冊資料庫的中繼資料。

常見問題

本節將解答外部擴充功能的常見問題。

從 M33 版開始,Google Chrome 是否仍支援「預先安裝」的方法?

會,但僅限於從 Chrome 線上應用程式商店 update_URL 安裝,而非從本機檔案路徑安裝。

可以將網址指定為外部擴充功能的路徑嗎?

可以,請使用 Mac OS X 和 Linux 的偏好設定 JSON 檔案;Windows 的registry。擴充功能必須如託管中所述的託管。在偏好設定檔案中,使用「external_update_url」屬性指向含有擴充功能網址的更新資訊清單。在 Windows 登錄檔中,使用「update_url」屬性。

使用偏好設定檔安裝應用程式時,有哪些常見錯誤?

  • 指定的 ID/版本與 .crx 中列出的 ID 不同
  • .json 檔案 (aaaaaaaaaabbbbbbbbbbcccccccccc.json) 位置錯誤,或是指定的 ID 與擴充功能 ID 不符。
  • JSON 檔案含有語法錯誤 (忘記使用半形逗號或結尾半形逗號分隔項目)
  • JSON 檔案進入點指向錯誤的 .crx 路徑 (或指定路徑,但沒有檔案名稱)
  • UNC 路徑中的反斜線未逸出 (例如 "\\server\share\file" 錯誤,應為 "\\\\server\\share\\extension")
  • 網路共用時的權限問題

在透過登錄檔安裝時有哪些常見錯誤?

  • 請勿指定與 Chrome 線上應用程式商店中列出的 ID/版本相同
  • 建立的金鑰在註冊資料庫的位置不正確
  • Chrome 線上應用程式商店中的 .crx 檔案路徑指向錯誤的路徑
  • 網路共用時的權限問題

如何逐步更新原生二進位檔和擴充功能?

以往當支援商店外擴充功能時,可能會擁有原生二進位檔,並在鎖定步驟中更新擴充功能。不過,在 Chrome 線上應用程式商店代管的擴充功能會透過 Chrome 更新機制進行更新,而開發人員無法控制這項更新。擴充功能開發人員應謹慎更新具有原生二進位檔依附元件的擴充功能 (例如使用 NPAPI 的舊版擴充功能)。

如果使用者解除安裝擴充功能,該怎麼辦?

如果使用者透過 UI 解除安裝擴充功能,系統就不會再在每次啟動時安裝或更新擴充功能。換句話說,系統會將外部擴充功能列入封鎖清單。

如何退出封鎖清單?

如果使用者解除安裝您的擴充功能,請尊重您的決定。不過,如果您 (開發人員) 不小心透過 UI 解除安裝擴充功能,則可透過 UI 正常安裝擴充功能,然後解除安裝,藉此移除封鎖清單標記。