其他扩展程序分发选项

所有 Chrome 扩展程序都必须直接从 Chrome 应用商店分发或使用 机制。未遵守上述分发方式之一的行为将造成 违反 Chrome 扩展程序政策,可能会导致扩展程序和/或软件 分发该应用,并被标记为垃圾软件

用户通常会通过 Chrome 应用商店安装扩展程序,但有时您可能希望 通过其他方式安装的扩展程序。以下是两种典型情况:

  • 某个扩展程序已与某些其他软件关联,因此应安装该扩展程序 用户安装该软件时触发。
  • 网络管理员希望在整个组织中安装相同的扩展程序。

不是从 Chrome 应用商店安装的扩展程序称为外部扩展程序。 适用于希望在其他 或者希望在整个组织内分发扩展程序的网络管理员 Google Chrome 支持以下扩展程序安装方法:

  • 使用偏好设置 JSON 文件(仅适用于 Mac OS X 和 Linux)
  • 使用 Windows 注册表(仅适用于 Windows)

这两种方式都支持安装托管在 update_URL 上的扩展程序。在 Windows 和 Mac 上, update_URL 必须指向必须托管该扩展程序的 Chrome 应用商店。

Linux 中的偏好设置文件可以指向您托管扩展程序的服务器。 偏好设置 JSON 文件还支持通过 .crx 扩展程序文件安装扩展程序的 用户的 Linux 计算机

准备工作

首先,在 Chrome 应用商店中发布该扩展程序,或打包 .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. 点击“控制台消息”。
  4. 搜索字符串无法读取外部扩展程序。如果您在阅读 外部扩展程序文件,那么您会看到一条错误消息。查找其他错误消息 这应该能说明问题所在。例如,如果您看到以下错误: “Path /Library/Application Support/Google/Chrome is used by the wrong group”(路径 /Library/Application Support/Google/Chrome 归错误组所有),您需要使用 chgrp 或 Finder 的“获取信息”对话框,可将目录的群组所有者更改为 管理员群组。
  5. 解决此问题后,请重新启动 Chrome。测试外部扩展程序现已安装完毕。它 有可能一种权限错误阻止 Chrome 检测到第二种错误。如果 未安装外部扩展程序,请重复这些步骤,直到 控制台应用。

使用 Windows 注册表

  1. 在注册表中查找或创建以下项: <ph type="x-smartling-placeholder">
      </ph>
    • 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”,并将其值设为: &quot;https://clients2.google.com/service/update2/crx&quot;(这指向您的扩展程序的 Chrome 应用商店):

    {
      "update_url": "https://clients2.google.com/service/update2/crx"
    }
    
  4. 启动浏览器,然后转到 chrome://extensions;您应该会看到该扩展程序已列出

更新和卸载

Google Chrome 每次浏览器都会扫描偏好设置和注册表中的元数据条目 启动,并对已安装的外部扩展程序进行必要的更改。

要将您的扩展程序更新到新版本,请更新文件,然后在 或注册表

若要卸载扩展程序(例如软件已卸载),请移除偏好设置 文件 (aaaaaaaaaabbbbbbbbbbcccccccccc.json) 或注册表中的元数据。

常见问题解答

这一部分解答了有关外部扩展程序的常见问题。

系统是否会允许“预安装”从 M33 开始仍受 Google Chrome 支持 ?

可以,但只能通过从 Chrome 应用商店 update_URL 安装,而不是通过本地文件路径进行安装。

我可以将网址指定为外部扩展程序的路径吗?

是,在 Mac OS X 和 Linux 中使用偏好设置 JSON 文件;Windows 注册表。通过 扩展程序必须按照托管中的说明进行托管。在偏好设置文件中,使用 “external_update_url”属性指向一个更新清单,该清单包含您的 。在 Windows 注册表中,使用“update_url”属性。

使用偏好设置文件进行安装时有哪些常见错误?

  • 指定的 ID/版本与 .crx 中列出的 ID/版本不一致
  • .json 文件 (aaaaaaaaaabbbbbbbbbbcccccccccc.json) 的位置或 ID 有误 与扩展程序 ID 不匹配。
  • JSON 文件中存在语法错误(忘记使用逗号分隔条目或留下结尾逗号 在某个地方)
  • JSON 文件条目指向错误 .crx 的路径(或指定的路径,但未指定文件名)
  • UNC 路径中的反斜杠未转义(例如,"\\server\share\file" 错误;它应该为 "\\\\server\\share\\extension")
  • 网络共享的权限问题

使用注册表进行安装时有哪些常见错误?

  • 指定的 ID/版本与 Chrome 应用商店中所列的 ID/版本不相同
  • 在注册表中的错误位置创建的键
  • 注册表入口点指向 Chrome 应用商店中 .crx 文件的路径有误
  • 网络共享的权限问题

如何逐步更新原生二进制文件和扩展程序?

以前,当支持离线扩展程序时,可以具有原生二进制文件和 在锁定步骤中更新扩展程序。不过,托管在 Chrome 应用商店中的扩展程序 通过开发者无法控制的 Chrome 更新机制进行更新。扩展程序开发者 在更新依赖于原生二进制文件的扩展程序(例如, 使用 NPAPI 的旧版扩展程序)。

如果用户卸载了该扩展程序,会怎么样?

如果用户通过界面卸载扩展程序,系统将不会再在以下位置安装或更新扩展程序: 也就是说,外部扩展程序已被列入屏蔽名单。

如何退出屏蔽名单?

如果用户卸载了您的扩展程序,您应该尊重用户的决定。但是,如果您( 开发者)不小心通过界面卸载了您的扩展程序,您可以移除屏蔽名单标记 正常通过界面安装扩展程序,然后将其卸载。