浏览器插件上架流程
上回说到,用 AI 开发上架了个浏览器插件。有朋友想知道上架扩展有需要哪些步骤。这里做个整理,这篇文章结构和步骤都是 AI 整理的。里面的文案细节、推荐的工具是我自己总结,以前发布扩展时直接用的。有需要的话下面的文案可以直接拷贝使用。

1. 准备工作
1.1 开发者账号注册
访问Chrome Web Store Developer Dashboard[1]
使用 Google 账号登录
支付一次性 5 美元的开发者注册费
需要一张支持美元支付的信用卡
这是一次性费用,注册成功后可以发布扩展
每个开发者账户最多可发布 20 个扩展程序
如需发布更多扩展,需向 Chrome Web Store 申请提高限额
同意开发者协议
完成注册后即可访问开发者控制台,开始上传和发布扩展。
1.2 上架前检查清单 ✅
在提交审核之前,请确保完成以下检查:
[ ] manifest.json 配置
[ ] 版本号是否已更新
[ ] 权限申请是否最小化
[ ] 图标配置是否完整
[ ] name 和 description 是否规范
[ ] 功能测试
[ ] 核心功能是否正常
[ ] 是否在不同系统/浏览器版本测试
[ ] 是否测试了错误处理
[ ] 控制台是否有报错
[ ] 商店资料
[ ] 截图是否符合要求
[ ] 描述是否完整清晰
[ ] 隐私政策是否完备
[ ] 权限使用说明是否清晰
1.3 插件开发与功能完善
确保插件功能完整、稳定,并进行多次测试。
优化代码,清除无用的部分。
如果面向国际用户,可添加多语言支持(参考 Chrome i18n 功能)。
1.4 准备必要的材料
图片与视频素材要求
素材类型 | 尺寸规格 | 是否必需 | 数量要求 | 备注说明 |
---|---|---|---|---|
插件图标 | 16x16 | 必需 | 1张 | 地址栏图标 |
插件图标 | 48x48 | 必需 | 1张 | 扩展管理页面 |
插件图标 | 128x128 | 必需 | 1张 | 商店展示 |
插件图标 | 19x19 | 可选 | 1张 | 高分屏适配 |
插件图标 | 38x38 | 可选 | 1张 | 高分屏适配 |
插件图标 | 96x96 | 可选 | 1张 | 商店预览 |
屏幕截图 | 1280x800 | 必需 | 1-5张 | 展示核心功能 |
推广小图 | 440x280 | 可选 | 1张 | 商店推广使用 |
推广大图 | 1400x560 | 可选 | 1张 | 商店推广使用 |
推广视频 | - | 可选 | 1个 | 上传至YouTube,提供链接 |
💡 提示:
推荐使用 Bulk Image Resize[2] 批量生成不同尺寸的图标
推广图片可使用 Canva 设计工具[3]制作(免费版已经够用了)
截图建议展示插件的主要功能和使用场景
官方网站(可选)
准备一个单页 HTML 介绍页面,包含插件功能、隐私政策等信息。
隐私政策(必需)
需提供一个隐私协议的静态页面。
2. 打包与上传插件
打包文件:
将所有代码、图标、manifest.json 等文件放入一个 ZIP 文件中。
确保文件夹结构清晰,无多余文件。
登录开发者中心: 登录Chrome Web Store Developer Dashboard[4]。
上传 ZIP 文件并填写所需信息。
3. 填写 Chrome Web Store 信息
3.1 基本信息
名称:已经包含在 manifest 文件中
简介:已经包含在 manifest 文件中
详细描述 一般包括以下部:
插件功能详细讲解。
Data Privacy(一般都应该有这段):
Your data stays on your device and is not stored or transmitted to our servers. We prioritize keeping your information secure and confidential.In-App Purchases(如适用):
Our extension is a freemium product with a nominal subscription fee. With a paid subscription, you can receive premium support. The exact cost is displayed in the extension’s interface, ensuring transparency and ease of understanding.Disclaimer(如需要):
This extension is an independently developed product by [作者] and has no association with [相关网站]。
类别:选择与扩展功能最相关的类别。
默认语言:选择主要用户群使用的语言。
3.2 图片和视频
屏幕截图(必需):
分辨率:1280x800 像素。
至少 1 张,最多 5 张,展示核心功能。
推广图(可选):
小图:440x280 px。
大图:1400x560 px。
推荐作图工具:Canva。
推广视频(可选):
上传到 YouTube 并提供链接,演示插件的功能和优势。
3.3 权限声明(必需)
从左边侧边栏切换到 Privacy 页面。填写扩展介绍和隐私相关内容。
根据 manifest.json 文件中声明的权限,在商店页面详细说明权限的使用景,例如:
Cookies:
The extension reads cookies and checks if the user is logged in to [网站]. The extension won’t send any cookie data to our server.Storage:
Uses ‘storage’ to save the extension settings.Identify:
Uses ‘identity’ to authenticate with a Google account.Scripting:
Injects CSS and JS into websites to enhance functionality.UnlimitedStorage:
Allows handling large amounts of data locally in the browser.WebRequest:
Reads request headers to interact with the [网站] API.Host Permissions:
Uses [”://.网站.com/*”] to ensure content scripts run only on the specified site and interact with APIs.
4. 审核与发布
4.1 常见审核被拒原因及解决方案
⚠️ 权限过度申请
问题:申请了过多不必要的权限
解决:仅申请必需的最小权限,并在商店页面详细说明每个权限的用途
⚠️ 描述不清或误导
问题:功能描述不准确或夸大其词
解决:确保描述准确、具体,避免使用"最好"、"第一"等营销用语
⚠️ 隐私政策不完整
问题:缺少隐私政策或内容不符合要求
解决:提供详细的隐私政策,说明数据收集和使用情况
⚠️ 功能实现有问题
问题:核心功能无法正常工作
解决:在多个环境下充分测试,确保功能稳定
4.2 重要提示
🔔 版本更新提示每次更新提交时,务必更新 manifest.json 中的版本号,否则将无法提交新版本。
🔔 审核时间说明首次提交审核通常需要 3-7 个工作日,更新版本审核约 1-3 个工作日。如超过时间请及时联系支持。
⚠️ 安全提示请勿在代码中包含敏感信息(如 API 密钥),建议使用环境变量或配置文件管理。
检查无误后提交审核。
等待审核:
审核通常需要 1-7 天。
如果被拒绝,查看 Google 的反馈并修正问题。
审核通过后,插件会自动上线。
5. 后续维护与优化
1. 更新插件:
修改代码后,重新上传 ZIP 文件,确保 manifest.json 中的 version 字段更新(如从 1.0.0 改为 1.0.1)。
2. 用户反馈:
定期查看商店评论,改进功能。
提供邮件或在线支持。
3. 推广与 SEO:
在商店页面合理使用关键词优化排名。
利用社交媒体、论坛等渠道进行传。
以上流程从准备到发布,覆盖了每个关键环节,希望对你有所帮助!
下一篇再具体说说我做的浏览器新标签页插件,一些技术细节,跟 Windsurf、Cursor 打交道的过程。
参考资料
[1]
Chrome Web Store Developer Dashboard: https://chrome.google.com/webstore/devconsole/
[2]Bulk Image Resize: https://chromewebstore.google.com/detail/bulk-image-resize/pbjckjjahcnilpblppepmgmbfndiehfm
[3]Canva 设计工具: https://www.canva.com/
相关文章:
浏览器插件上架流程
上回说到,用 AI 开发上架了个浏览器插件。有朋友想知道上架扩展有需要哪些步骤。这里做个整理,这篇文章结构和步骤都是 AI 整理的。里面的文案细节、推荐的工具是我自己总结,以前发布扩展时直接用的。有需要的话下面的文案可以直接拷贝使用。…...
Android13 USB 串口默认授权
一)场景需求 项目中使用到了can协议控制车机功能,can 直接转串口,用USB转串口工具 cn.wch.uartlib 来实现. can 板子通过usb 插入到机器上面,那就是usb 协议了。 遇到问题: 插入can 板的usb 到机器上后,直…...
word实践:正文/标题/表图等的共用模板样式设置
说在前面 最近使用word新建文件很多,发现要给大毛病,每次新建一个word文件,标题/正文的字体、大小和间距都要重新设置一遍,而且每次设置这些样式都忘记了参数,今天记录一下,以便后续方便查看使用。现在就以…...
docker安装kettle(PDI)并实现web访问
我是MAC电脑M1版本,希望把软件交给docker进行管理,最近公司同事都通过kettle来实现外部数据对接,所以我本地也有安装kettle需求,在网上找到了这个解决方案操作很简单,但出现了无法访问的情况。我的排查方式是ÿ…...
vue自定义弹窗点击除了自己区域外关闭弹窗
这里使用到vue的自定义指令 <div class"item" v-clickoutside"clickoutside1"><div click"opencity" class"text":style"{ color: popup.iscitypop || okcitylist.length ! 0 ? #FF9500 : #000000 }">选择地区…...
【vue2】封装自定义的日历组件(三)之基础添加月份的加减定位到最新月份的第一天
我们在切换月份的时候,希望高亮显示在每个月的第一天上面,这样的效果我们要怎么来实现,其实也很简单,我们先看下实现的效果 实现效果 代码实现 原理就是获取到每月的第一天日期,然后再跟整个的数据进行对比ÿ…...
21天掌握javaweb-->第12天:Spring Boot项目优化与安全性
Spring Boot项目优化与安全性 1. Spring Boot性能优化 1.1 减少依赖项 评估项目的依赖项,并确保只引入必要的依赖。较多的依赖项可能会增加启动时间,因为它们需要被扫描和初始化。通过删除不需要的依赖项或仅引入必要的模块,可以减少类路径…...
Android —— 四大组件之Activity(一)
Android四大组件即Activity(前台)Service(后台),Broadcast(通信),ContentProvider(数据存储) 一、Activity Activity 充当了应用与用户互动的入口点Activity …...
Ubuntu手持司岚S2激光雷达进行建图
目前通过ros包将激光雷达数据读取之后: roslaunch rplidar_ros view_rplidar_s2.launch 再通过运行 cartographer_ros结点将代码运行起来 roslaunch cartographer_ros demo_revo_lds.launch 这里要注意, 在demo_revo_lds.launch 文件中引入的revo_lds.lua文件中要使用仿真时…...
快速了解 Aurora DSQL
上周在 AWS re:Invent大会(类似于阿里云的云栖大会)上推出了新的产品 Aurora DSQL[1] ,在数据库层面提供了多区域、多点一致性写入的能力,兼容 PostgreSQL。并声称,在多语句跨区域的场景下,延迟只有Google …...
【Android Studio】学习——网络连接
实验:Android网络连接 文章目录 实验:Android网络连接[toc]实验目标和实验内容:1、掌握Android联网的基本概念;2、能够使用URL connection实现网络连接;3、掌握第三方库的基本概念4、需实现的具体功能 实验结果功能说明…...
c语言复制字符串memcpy和strncpy函数区别
memcpy 和 strncpy 的耗时区别 这两个函数在功能上有明显差异,导致性能和耗时也不同。以下是它们的详细对比: 1. 功能差异 函数功能memcpy按字节复制数据,不处理字符串终止符 \0,适用于任意数据类型的内存复制。strncpy复制字符…...
Java设计模式 —— 【创建型模式】建造者模式详解
文章目录 一、建造者模式二、案例实现三、优缺点四、模式拓展五、对比1、工厂方法模式VS建造者模式2、抽象工厂模式VS建造者模式 一、建造者模式 建造者模式(Builder Pattern) 又叫生成器模式,是一种对象构建模式。它可以将复杂对象的建造过…...
python爬虫--某房源网站验证码破解
文章目录 使用模块爬取目标验证码技术细节实现成果代码实现使用模块 requests请求模块 lxml数据解析模块 ddddocr光学识别 爬取目标 网站验证码破解思路是统一的,本文以城市列表为例 目标获取城市名以及城市连接,之后获取城市房源信息技术直接替换地址即可 验证码 技术…...
Android 项目依赖库无法找到的解决方案
目录 错误信息解析 解决方案 1. 检查依赖版本 2. 检查 Maven 仓库配置 3. 强制刷新 Gradle 缓存 4. 检查网络连接 5. 手动下载依赖 总结 相关推荐 最近,我在编译一个 Android 老项目时遇到了一个问题,错误信息显示无法找到 com.gyf.immersionba…...
SpringBoot3整合SpringMVC
一、实现过程: (1).创建程序 (2).引入依赖: <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0"xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation"…...
内网穿透 natapp安装与使用
前言 NATAPP是一款基于ngrok的内网穿透工具。以下是对NATAPP的详细概述: 基本概念 定义:内网穿透(NAT穿透)是一种技术,它允许具有特定源IP地址和端口号的数据包能够绕过NAT设备,从而被正确地路由到内网主机…...
docker镜像构建企业级示例
华子目录 示例(在centos容器中源码编译nginx(单介构建))包准备为centos容器提供网络源添加企业7的ISO文件 提交为新的centos镜像编写dockerfile文件构建镜像如何优化自己构建的镜像大小多介构建 ldd命令基本用法示例 镜像优化方案…...
【论文阅读】龙芯2号处理器设计和性能分析
作者:胡伟武老师 胡伟武老师是计算机体系结构方向的大牛,推动了龙芯处理器的发展 学习体会: 学习追踪龙芯系列“工程流”论文,看看如何做工程,完成→完美 龙芯2号处理器几乎是工程向的论文,主要看一下实现…...
二一(GIT4)、echarts(地图)、黑马就业数据平台(学生页-增 删 改)
1. echarts 地图 echarts社区:makeapie echarts社区图表可视化案例 社区模板代码地址:自定义 tooltip-轮播 - category-work,series-map地图,tooltip提示框,visualMap视觉映射 - makeapie echarts社区图表可视化案例 // todo: 籍贯分布 地图 function…...
数据结构排序算法详解
数据结构排序算法详解 1、冒泡排序(Bubble Sort)2、选择排序(Selection Sort)2、插入排序(Insertion Sort)4、快速排序(Quick Sort) 1、冒泡排序(Bubble Sort)…...
使用kubeadm命令安装k8s
版本信息 kubernetesVersion: 1.28.01. 前期环境准备 先配置软件源可以安装kubeadm、kubelet、kubectl三个软件,不同的系统不同的安装方式,这里不列举了,自己找。然后要安装cri-dockerd,因为kubernetes从1.24版本不再支持docker的api,支持原生的containerd的api,可以使用…...
依托 Spring Boot框架,精铸高扩展性招聘信息管控系统
1 绪 论 1.1 课题背景与意义 在Internet高速发展的今天,计算机的应用几乎完全覆盖我们生活的各个领域,互联网在经济,生活等方面有着举足轻重的地位,成为人们资源共享,信息快速传递的重要渠道。在中国,网上管…...
docker 部署 mysql 9.0.1
docker 如何部署 mysql 9 ,请看下面步骤: 1. 先看 mysql 官网 先点进去 8 版本的 Reference Manual 。 选择 9.0 版本的。 点到这里来看, 这里有一些基础的安装步骤,可以看一下。 - Basic Steps for MySQL Server Deployment wit…...
SQL:从某行开始,查询一定行数的语句
比如实现从第五行开始查询5行数据的SQL语句 不同数据库有不同的实现方式,下面是各大数据库的查询语句。 1. SQL Server(适用于 SQL Server 2012 及之后版本)、DB2、Oracle(适用12c及以上版本) 这几种数据库的实现方式…...
18. 模块
一、什么是模块 模块化 指将一个完成的程序分解为一个一个小的模块。通过将模块组合,来搭建一个完整的程序。如果不采用模块化,那么所有的代码将统一保存到一个文件中。采用模块化后,将程序分别编写到多个文件中。使用模块化后,我…...
GroundingDINO微调训练_训练日志解释
文章目录 1. 训练日志1. Epoch 和 Iteration2. Learning Rate(学习率)3. ETA(预计剩余时间)4. Time 和 Data Time5. Memory6. Gradient Norm(梯度范数)7. Loss(损失)8. Individual L…...
华为eNSP:VRRP多网关负载分担
一、实验拓扑及目的 二、实验命令及实验步骤 LSW1的配置命令 <Huawei>sy [Huawei]un in e [Huawei]sys S1 [S1]vlan batch 100 200 [S1]int g0/0/1 [S1-GigabitEthernet0/0/1]port link-type access [S1-GigabitEthernet0/0/1]port default vlan 100 [S1-GigabitEtherne…...
uni-app写的微信小程序如何实现账号密码登录后获取token,并且每天的第一次登录后都会直接获取参数而不是耀重新登录(1)
uni-app写的微信小程序如何实现账号密码登录后获取token(而token的有效器一般是30分钟,当页面在操作时token是不会过去,,离开页面第二天登录时token就是过期状态,因为记住了账号密码就不会操作再次登录,但是…...
【linux】(29)shell-变量和引号
Shell 脚本中有三种引号:双引号 "、单引号 和反引号 。它们有不同的作用。 双引号 " 双引号允许引用的字符串中包含变量和命令替换。 #!/bin/bash name"Alice" echo "Hello, $name!"单引号 单引号中的内容被原样引用࿰…...
Linux如何安装discuz
在Linux上安装Discuz!程序通常涉及以下步骤: 安装Web服务器(如Apache或Nginx)和数据库(如MySQL或PostgreSQL)。 下载Discuz!的最新版本。 将Discuz!文件上传到Web服务器的公共目录中。 根据README.md文件配置Discuz…...
SpringBoot如何使用EasyExcel实现表格导出(简洁快速入门版本)
前言 前面给大家介绍了动态表头的导入,这篇文章给大家介绍如何实现导出 前面给大家介绍了动态表头的导入,我们了解了如何通过EasyExcel灵活地读取结构不固定的Excel文件。这次,我们将目光转向数据导出——即如何将数据以Excel文件的形式输出…...
Python爬虫使用示例-保存诗人简介到csv文件中
一、获取资源 目标网址:(第一页) https://www.shicimingju.com/category/all(后续) https://www.shicimingju.com/category/all_2 https://www.shicimingju.com/category/all_3 ... https://www.shicimingju.com/ca…...
yocto的xxx.bb文件在什么时候会拷贝文件到build目录
在 Yocto 中,.bb 文件用于描述如何构建和安装一个软件包,而文件在构建过程中的拷贝操作通常会在某些特定的步骤中进行。具体来说,文件会在以下几个阶段被拷贝到 build 目录(或者更准确地说,拷贝到目标目录 ${D}&#x…...
Mysql定时数据库备份保姆级教程
目录 一、需要解决的问题 1、如何传输文件? 2、如何备份数据库? 3、如何建立一个定时任务? 二、实施步骤 1、建立SSH公钥,实现无密码登录 2、编写备份数据库脚本 3、编写定时任务 MySQL 是一种全球广泛使用的关系型数据库管理系统,它存储的数…...
使用 Grafana 展示多个TiDB集群的告警
作者: yangzhj 原文来源: https://tidb.net/blog/229e283c 背景 在日常运维工作中,我们有时需要将多个生产集群的告警信息展示在一起,统一集中观察和分析TiDB 集群的告警情况。 本文将通过 Grafana 的多数据源功能来将多个Ti…...
lnmp+discuz论坛 附实验:搭建discuz论坛
Inmpdiscuz论坛 Inmp: t: linux操作系统 nr: nginx前端页面 me: mysql数据库 账号密码,等等都是保存在这个数据库里面 p: php——nginx擅长处理的是静态页面,页面登录账户,需要请求到数据库,通过php把动态请求转发到数据库 n…...
AI时代的开发新纪元:云开发 Copilot
AI时代的开发新纪元:云开发 Copilot 目录 引言:AI时代的开发新纪元低代码与AI的完美融合云开发 Copilot的革命性意义云开发 Copilot 的核心特性解析 快速生成应用功能低代码与AI的深度结合 实战演练:云开发 Copilot 的应用案例 从需求到实现…...
探索 Java 中的 Bug 世界
在 Java 编程的旅程中,我们不可避免地会遇到各种 Bug。这些 Bug 可能会导致程序出现意外的行为、崩溃或者性能问题。了解 Java Bug 的类型、产生原因以及解决方法,对于提高我们的编程技能和开发出稳定可靠的应用程序至关重要。 一、Java Bug 的定义与分类…...
【C++】等差数列末项计算题解析及优化
博客主页: [小ᶻ☡꙳ᵃⁱᵍᶜ꙳] 本文专栏: C 文章目录 💯前言💯题目描述与输入输出要求💯数学分析与公式推导公差的计算通项公式推导 💯示例解析解题步骤 💯程序实现与解析初版代码代码解析优点与不足…...
【LeetCode】55.跳跃游戏
文章目录 题目链接:题目描述:解题思路(贪心算法): 题目链接: 55.跳跃游戏 题目描述: 解题思路(贪心算法): 如果某一个位置的元素为N,表示后面N…...
linux基于systemd自启守护进程 systemctl自定义服务傻瓜式教程
系统服务 书接上文: linux自启任务详解 演示系统:ubuntu 20.04 开发部署项目的时候常常有这样的场景: 业务功能以后台服务的形式提供,部署完成后可以随着系统的重启而自动启动;服务异常挂掉后可以再次拉起 这个功能在ubuntu系统中通常由systemd提供 如果仅仅需要达成上述的场…...
SparkSQL编程实践
文章目录 SparkSQL编程实践1.1. 编程模型介绍1.2. SparkSQL编程1.2.1. 第三方库安装1.2.2. SparkSQL程序的结构1.2.3. SparkSQL执行模式1.2.3.1. Local模式1.2.3.2. 集群模式 1.2.4. 数据加载1.2.4.1. 通过RDD创建DataFrame1.2.4.2. 通过读取数据外部数据创建DataFrame标准读取…...
模型训练数据-MinerU一款Pdf转Markdown软件
模型训练数据-MinerU一款Pdf转Markdown软件-说明 简介: MinerU是什么 MinerU是上海人工智能实验室OpenDataLab团队推出的开源智能数据提取工具,专注于复杂PDF文档的高效解析与提取。MinerU能将包含图片、公式、表格等元素的多模态PDF文档转化为易于分析…...
shell基础用法
shell基础知识 shell中的多行注释 :<<EOF read echo $REPLY # read不指定变量,则默认写入$REPLY EOF # :<<EOF ...EOF 多行注释,EOF可以替换为!# 等文件目录和执行目录 echo $0$0 # ./demo.sh echo $0的realpath$(realpath…...
Redisson分布式锁
概览 个人博客源地址 Redisson不只是一个 Java Redis 客户端,它是一个以内存 Redis 服务器作为后端的处理 Java 对象(如 java.util.List, java.util.Map, java.util.Set, java.util.concurrent.locks.Lock 等)的一个框架。 Redisson提供了使用Redis的最简单和最…...
【C语言--趣味游戏系列】--电脑关机整蛊小游戏
前言: 老铁们,还是那句话,学习很苦游戏来补, 为了提高大家与朋友之间的友谊,博主在这里分享一个电脑关机的恶作剧小游戏,快拿去试试吧!!! 目录: 1.电脑关机代…...
C#实现一个HttpClient集成通义千问-开发前准备
集成一个在线大模型(如通义千问),来开发一个chat对话类型的ai应用,我需要先了解OpenAI的API文档,请求和返回的参数都是以相关接口文档的标准进行的 相关文档 OpenAI API文档 https://platform.openai.com/docs/api-…...
二叉树优选算法(一)
一、根据二叉树创建字符串 题目介绍: 给你二叉树的根节点 root ,请你采用前序遍历的方式,将二叉树转化为一个由括号和整数组成的字符串,返回构造出的字符串。 空节点使用一对空括号对 "()" 表示,转化后需…...
单片机C51--笔记8-STC89C51RC/RD-IIC协议
一、概述 IIC全称Inter-Integrated Circuit (集成电路总线) 是由PHILIPS公司在80年代开发的两线式串行总线,用于连接微控制器及其外围设备。IIC属于半双 工同步通信方式。 特点 简单性和有效性。 由于接口直接在组件之上,因此IIC总线占用的空间非常小…...