微信小程序发布教程
一、发布流程概览
flowchart LR
A[注册小程序] --> B[部署 HTTPS 后端]
B --> C[配置服务器域名]
C --> D[切换生产环境配置]
D --> E[开发者工具上传]
E --> F[提交审核]
F --> G[全量发布]
阶段
常见负责角色
产出
账号与资质
运营 / 法人
AppID、管理员权限
后端上线
后端 / 运维
HTTPS 域名、API 可用
平台配置
前端 / 运营
域名白名单、隐私协议
代码上传
前端
开发版 / 体验版
审核发布
运营
正式版上线
二、发布前准备
2.1 必备账号与工具
微信公众平台 小程序账号
微信开发者工具(建议 Stable 版)
已完成开发的小程序源码
可公网访问的后端服务(若小程序需要联网)
2.2 主体类型差异
主体
常见能力
说明
企业
微信支付、更多类目、客服等
需营业执照,推荐商用
个人
基础功能
无法使用微信支付等能力,部分类目受限
政府 / 媒体 / 其他组织
按平台规则
需对应资质
2.3 服务器与域名要求
正式版小程序不能像开发工具那样随意请求 http://127.0.0.1 或未备案域名。生产环境通常需满足:
要求
说明
HTTPS
wx.request、wx.uploadFile、wx.downloadFile 等必须使用 HTTPS
ICP 备案
服务器在中国大陆时,域名需完成备案
合法域名
在微信公众平台配置「服务器域名」白名单
有效证书
TLS 证书未过期,建议 TLS 1.2 及以上
配置规则: 公众平台填写的是域名(如 https://api.example.com),不含路径、不含端口(默认 443)。子域名需单独添加。
2.4 梳理小程序用到的网络能力
发布前在代码里搜索以下 API,列出所有会访问的域名:
API
需配置的域名类型
wx.request
request 合法域名
wx.uploadFile
uploadFile 合法域名
wx.downloadFile
downloadFile 合法域名
wx.connectSocket
socket 合法域名
业务域名(另需下载校验文件)
若静态资源(图片、音视频、文件)与 API 不在同一域名,每个域名都要分别配置。
三、注册与创建小程序
3.1 注册
打开 微信公众平台
选择「小程序」→ 按指引完成注册(邮箱、主体信息、管理员微信扫码)
按需完成微信认证(部分能力、类目需要)
3.2 获取 AppID
登录公众平台 → 开发管理 → 开发设置 → AppID(小程序 ID)
在项目根目录的 project.config.json(或 project.private.config.json)中配置:
{
"appid": "wxXXXXXXXXXXXXXXXX",
"projectname": "your-miniapp"
}
AppID 必须与公众平台一致,否则无法上传正式代码。
3.3 成员与权限
管理 → 成员管理 中可添加:
管理员:最高权限
开发者:可上传代码、使用开发者工具
体验者:可扫码体验体验版(最多若干人,以平台限制为准)
四、配置服务器域名
路径:开发管理 → 开发设置 → 服务器域名
点击「修改」后填写(示例):
类型
示例
用途
request 合法域名
https://api.example.com
接口请求
uploadFile 合法域名
https://api.example.com
文件上传
downloadFile 合法域名
https://cdn.example.com
文件下载
socket 合法域名
wss://ws.example.com
WebSocket(如有)
注意:
每月修改次数有限,提交前请核对完整
不支持 IP 地址、不支持 HTTP
域名需已备案且 HTTPS 可正常访问
开发阶段跳过域名校验
开发者工具 → 详情 → 本地设置 → 不校验合法域名、web-view……
此选项仅本地生效。提审前务必关闭该项,用真机 + 生产域名完整测一遍。
五、生产环境配置
5.1 切换 API 地址
将代码中的开发地址改为生产 HTTPS 地址,例如:
// 开发
const BASE_URL = 'http://127.0.0.1:8080/api';
// 生产
const BASE_URL = 'https://api.example.com/api';
常见做法:按运行环境自动切换,避免每次发布手动改代码:
const accountInfo = wx.getAccountInfoSync();
const env = accountInfo.miniProgram.envVersion; // develop | trial | release
const BASE_URL = env === 'release'
? 'https://api.example.com/api'
: 'http://127.0.0.1:8080/api';
envVersion
含义
develop
开发版(开发者工具、开发版二维码)
trial
体验版
release
正式版
5.2 资源 URL
接口返回的图片、音视频地址若为相对路径(如 /static/a.mp3),真机无法播放。应:
推荐:后端直接返回完整 HTTPS URL
或:前端统一拼接 CDN / API 域名
5.3 关闭调试开关
发布前检查:
移除或关闭 console.log 等调试输出(或使用构建工具 strip)
关闭 mock 数据
project.config.json 中生产构建开启压缩(minified: true 等)
敏感信息(密钥)不要写在前端代码中
5.4 隐私与用户协议
设置 → 服务内容声明 / 用户隐私保护指引
按实际采集的用户信息勾选(如手机号、位置、相册、麦克风等),并在小程序内提供《用户协议》《隐私政策》入口(常见位置:登录页、设置页、关于页)。
未配置隐私指引可能导致审核不通过。
六、后端上线检查(通用)
若小程序依赖自建后端,发布前建议确认:
生产数据库、缓存、消息队列已部署
环境变量 / 配置文件指向生产环境
HTTPS 与反向代理(Nginx、Caddy 等)已配置
日志、监控、进程守护(systemd、Docker、K8s 等)已就绪
第三方服务(支付、短信、对象存储)使用生产 Key
接口在公网可访问,且与小程序配置的域名一致
七、微信开发者工具:导入与上传
7.1 导入项目
打开微信开发者工具
+ → 导入项目
选择小程序项目目录
填写 AppID(测试号仅用于本地预览,不能走完整发布流程)
后端服务选「不使用云服务」(除非使用微信云开发)
7.2 发布前自测
建议在真机调试下验证核心路径:
首页与主要 Tab 可正常打开
登录 / 注册(如有)
核心业务流程可走通
上传、下载、支付等涉及域名白名单的功能
分享、扫码进入指定页面(如有)
弱网、无网时的提示是否友好
7.3 上传代码
开发者工具右上角 → 上传
填写版本号(建议语义化,如 1.0.0)和项目备注
上传成功后,登录公众平台 → 管理 → 版本管理 → 开发版本 可见该版本
八、体验版与提交审核
8.1 体验版(推荐)
版本管理 → 开发版本 → 选为体验版
生成体验版二维码,供产品、测试、运营在真机验证,减少审核驳回概率。
8.2 提交审核
在开发版本上点击 提交审核,按页面填写:
项
说明
配置功能页面
选择审核人员会看到的核心页面路径
测试账号
若需登录,提供可用账号密码(及验证码说明)
服务类目
选择与实际功能匹配的类目,需相应资质
功能描述
简要说明小程序做什么、怎么用
补充材料
特殊行业、UGC、AI 生成等可能需额外资质或说明
政策随平台更新而变化,以提交审核页当前要求为准。
8.3 常见驳回原因
原因
处理建议
域名未配置 / 非 HTTPS
检查服务器域名与证书
页面无法打开或接口报错
真机连生产环境复现并修复
缺少隐私协议
补全隐私指引与小程序内链接
测试账号不可用
提供有效账号,确保审核期间不过期
类目与功能不符
调整类目或补充资质
内容违规
加强审核机制、举报入口、用户协议
可在 版本管理 → 审核版本 查看驳回原因,修改后重新上传、再提审。
九、发布上线
审核通过后:
版本管理 → 审核版本 → 全量发布(或灰度发布,若已开通)
用户通过搜索小程序名称、扫码、分享卡片等方式访问正式版
后续迭代:改代码 → 上传 → 提审 → 发布(旧用户逐步更新到新版本)
版本号建议
上传版本号:每次上传递增,便于回溯
用户可见版本:可在 app.json 或关于页展示,与上传版本保持一致或映射
十、发布检查清单
可直接复制使用:
账号与平台
AppID 已正确配置
开发者 / 体验者已添加
request / uploadFile / downloadFile(及 socket)域名已配置
隐私保护指引、用户协议已填写并在小程序内可访问
服务类目与资质齐全
后端(如有)
生产环境部署完成,HTTPS 正常
数据库与第三方服务为生产配置
接口与静态资源域名均在白名单内
小程序代码
API 地址已切换为生产 HTTPS
真机核心流程验证通过
关闭「不校验合法域名」后仍正常
无硬编码密钥、无遗留 mock
审核材料
测试账号与操作说明已准备
功能页面路径已配置
特殊行业补充材料已上传(如需要)
十一、常见问题
Q1:提示「不在以下 request 合法域名列表中」
确认公众平台已配置对应域名
确认请求 URL 为 https:// 且主机名与配置完全一致(子域名不通用)
关闭开发者工具「不校验合法域名」后重试
Q2:uploadFile / downloadFile 失败
分别检查 uploadFile、downloadFile 合法域名是否配置,以及服务端是否返回正确状态码与 CORS(小程序侧主要受域名白名单限制)。
Q3:开发工具正常,真机异常
真机走正式域名校验和网络环境。优先用真机调试 + 体验版排查,排除仅本地生效的设置。
Q4:
需在 业务域名 中配置 H5 域名,并在域名根路径放置微信提供的校验文件。
Q5:审核通过但用户看不到新版本
确认已点击「全量发布」;用户端可能存在缓存,或尚未打开小程序触发更新。
Q6:使用微信云开发还需要自建服务器吗?
若全部使用云开发(云函数、云数据库、云存储),则配置方式不同,需在云开发控制台绑定环境,而非传统 request 域名。本文主要针对自建后端场景。
十二、相关官方文档
小程序开发文档
网络请求与域名配置
小程序发布上线指引
用户隐私保护指引填写说明
小程序运营规范
文档版本:2026-09 · 通用微信小程序发布流程