问题
来自于自己开发的插件问题。
之前是通过 zip 包开发模式安装,有个很恶心的问题是,每次通过 zip 包安装新版本的时候,都会生成一个新的扩展插件 id,配置无法共享,且存在多个插件。
于是就考虑发布 crx
格式的插件,如果使用同一个私钥打包,生成的 ID 是同一个,可以正常升级。
但是在新的 Chrome 版本中,无法安装 crx 格式的插件,严格限制需要从插件商店下载的插件才能安装。
开发模式下直接拖入 crx
点击链接直接下载
解决方案
配置 Chrome Policy,相关文档:Chrome Enterprise and Education
根据不同的平台,安装文档的说明来配置,可以解决无法安装的问题。
我这里是 macOS sonoma 14.5,简单说一下如何配置。
- 创建
com.google.Chrome.plist
文件
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>ExtensionInstallAllowlist</key>
<array>
<string>jbicbgijbjgjefidndkeekgihopncjkk</string>
</array>
<key>ExtensionInstallSources</key>
<array>
<string>https://objects.githubusercontent.com/*</string>
<string>https://github.com/oustn/cookie-sharer/releases/*</string>
</array>
</dict>
</plist>
其中:
- ExtensionInstallAllowlist 是一个字符串数组,值是需要配置白名单的插件 ID
- ExtensionInstallSources 是一个字符串数组,值是 crx 文件下载的地址匹配字符串,有个很重要的点就是:如果文件会 307,需要把实际的下载文件地址和 307 地址都加入白名单
- 将 plist 文件转换为 mac 的描述文件,可以使用 mcxToProfile on github
mcxToProfile --plist ./com.google.Chrome.plist --identifier com.google.Chrome
- 在目录中会生成一个
com.google.Chrome.mobileconfig
的文件,双击,会提示在 设置 安装
点击安装
- 重启 chrome,chrome://policy/ 可以查看是否生效
- 打开 github release 页面,点击 crx 链接安装
- 其他平台可以参考官方链接