是否可以为 Chrome Web Store 之外的私人分发创建 Chrome 扩展程序?

Posted

技术标签:

【中文标题】是否可以为 Chrome Web Store 之外的私人分发创建 Chrome 扩展程序?【英文标题】:Is it possible to create a Chrome Extension for private distribution outside Chrome Web Store? 【发布时间】:2012-09-09 06:56:15 【问题描述】:

我们开发了一个 Chrome 扩展应用程序,并希望仅将其分发给有限数量的内部用户。

这将是一个私有应用程序,但要安装它,用户现在必须按照手动步骤转到设置 -> 扩展 -> 点击开发者模式 -> 将 .crx 放在那里。

我想知道是否有一种方法可以让私有 App Store 私下分发此应用,而不是在 Chrome Web Store 上供任何人查看/下载/使用。

提前感谢您的帮助 ---

【问题讨论】:

我认为自 2014 年年中 Chrome 禁用了所有未通过 Google 商店安装的扩展程序以来,当前的答案现在可能已经过时了。 我也有同样的情况,想知道是否还有解决方法。 【参考方案1】:

由于它是内部的,您可以更改他们计算机上的注册表设置吗? 因为如果是这样,您可以使用它们轻松地从网上商店外部安装扩展程序或强制在他们的机器上安装扩展程序。 看这里....http://www.chromium.org/administrators/policy-templateshttp://www.chromium.org/administrators/policy-list-3#ExtensionInstallSources http://www.chromium.org/administrators/policy-list-3#ExtensionInstallForcelist

【讨论】:

【参考方案2】:

您使用 Chrome 网上应用店。有 2 个选项:

    从 Chrome 网上应用店共享一个不公开的 Chrome 扩展程序(知道链接的任何人都可以安装它) 使用 G Suite 或 Education 的 Chrome 客户可以使用 Chrome 网上应用店来托管仅限同一域中的用户使用的私有应用。

见https://support.google.com/chrome/a/answer/2663860


2016-05-20 更新:来自https://support.google.com/chrome/a/answer/2663860?hl=en

使用 Google Apps for Work 或 Education 的 Chrome 客户可以使用 Chrome 网上应用店来托管仅限其用户或您与之共享应用直接链接的人的私有应用。来自同一 Chrome 网域的用户将在 Chrome 网上应用店的私人收藏集中看到其组织的私人应用。

2015 年 10 月 27 日更新:Google 更新了安装政策,试图遏制 Windows 上的恶意扩展活动。在chrome extension hosting page:

警告:从 Chrome 33 开始,Windows 用户只能下载扩展程序 托管在 Chrome 网上应用店中,通过企业安装除外 策略或开发人员模式(请参阅保护 Windows 用户免受恶意 扩展名)。从 Chrome 44 开始,不允许从外部安装 Mac 上本地 .crx 的路径(请参阅继续保护 Chrome 用户 来自恶意扩展)。

使用最新版本的 Google Chrome,用户将不再能够仅单击下载链接并使用正确的 HTTP 标头进行安装。这为您留下了 4 种可能的选择:

user downloads extension and then drags the file into the extension management page(根据更新说明,这不再适用于 Windows) change registry settings on users computers 用户在扩展管理页面下载扩展源文件夹并从源加载扩展 Re-enable extension installs with command-line flag Rob W 的建议

我在公司内部私下创建并分发了几个不同的 Google Chrome 扩展程序,并选择了第一个选项。这对用户来说是一个额外的步骤,但这没什么大不了的。用户不必在其 Chrome 浏览器中启用开发者模式即可。

【讨论】:

安装扩展的“旧”行为可以通过命令行标志再次启用,参见Re-enabling extension installs。 作为参考,Windows 上的 Chrome 现在将禁用在 Chrome 重新启动后使用第一种方法手动安装的应用程序。 ^ 现在 osx 也会发生同样的事情【参考方案3】:

是的,你可以。您需要通过 google chrome“扩展”页面创建 crx 文件(访问:chrome://extensions/ 注意:您无法点击链接您必须手动复制并粘贴它,chrome 不会允许您从 href 访问链接)

在扩展页面,勾选“开发者模式”,选择“打包扩展”。

现在您会看到以下弹出窗口。单击Extension root directory 的“浏览”并导航到包含您的扩展程序的文件夹(包含 manifest.json 的文件夹)。

第一次执行此操作时,请忽略私钥文件。它会自动为您生成一个并将其保存到同一文件夹中。

当您发布新版本的扩展时,请使用生成的私钥文件。这样别人更新扩展就不会再请求权限了。


安装

要安装扩展,只需让每个用户手动将新创建的扩展 crx 拖到扩展页面 (chrome://extensions/) 中。 第一次会要求权限,就像从 Chrome 网上应用店安装时一样。 对于每个新版本,只要您为每个新版本使用相同的私钥文件,用户只需将新版本以相同的方式拖入扩展页面,除非他们不会再次被要求授予权限。它只会更新扩展。

警告:

注意分发扩展 crx 文件的方式。当用户在 Google Chrome 中下载扩展 .crx 文件时,它会认为您正在尝试从该页面安装扩展,并出现“无法从该站点安装”的警告。您需要确保用户知道忽略该错误,并检查他们的下载文件夹以手动安装扩展程序。 每当您下载 .crx 文件时,Chrome 都会向用户发出警告,指出它可能包含病毒。没有办法解决这个问题。即使您压缩文件,Chrome 也会读取内容并给出相同的警告。一些用户因此不会安装。一种解决方法是将 .crx 重命名为其他名称,例如 .RENAME_TO_CRX,但这很麻烦,而且很多用户不想或无法弄清楚。 您无法自动更新扩展。这是不可能的,因为 Chrome 手动阻止了此功能。

注意:另一种方法是在 Chrome 商店中发布它,但仅限于某些用户(不公开)。只有知道链接的人才能安装,或者你可以让它只有某些人可以安装,即使你有链接但不是组的一部分,他们也无法查看扩展。这里唯一的问题是,如果您不希望 Google 看到扩展程序。

【讨论】:

作为更新:刚刚在 2020 年执行了这些步骤,但没有奏效。无法打开扩展程序,因为“它来自外部来源”。【参考方案4】:

如果您使用 Google Apps,现在似乎有一种方法可以将应用程序和扩展程序发布到 Chrome 网上应用店,但只能让该域的用户看到。

https://support.google.com/chrome/a/answer/2663860?hl=en

【讨论】:

以上是关于是否可以为 Chrome Web Store 之外的私人分发创建 Chrome 扩展程序?的主要内容,如果未能解决你的问题,请参考以下文章

如何检查 Chrome 扩展程序是不是已完全安装

在 Chrome Web Store URL 的 Chrome 扩展中绕过 X-Frame-Options

How to download a CRX file from the Chrome web store

[Windows Store应用程序的MDI类型应用程序

是否有一些示例可以在一个命令中在 Angular 7 上创建 ngrx/Store

防止 Web 应用程序在域白名单之外发出 HTTP 请求 [重复]