波波技术栈
article

微信小程序发布教程

本文介绍微信小程序从本地开发到正式发布的完整流程,涵盖账号注册、HTTPS 后端部署、服务器域名配置、生产环境切换、代码上传、提交审核与全量发布等环节,并说明主体类型差异、域名白名单要求及常见注意事项,适合自建后端的小程序项目参考。

一、发布流程概览

flowchart LR
  A[注册小程序] --> B[部署 HTTPS 后端]
  B --> C[配置服务器域名]
  C --> D[切换生产环境配置]
  D --> E[开发者工具上传]
  E --> F[提交审核]
  F --> G[全量发布]
阶段 常见负责角色 产出
账号与资质 运营 / 法人 AppID、管理员权限
后端上线 后端 / 运维 HTTPS 域名、API 可用
平台配置 前端 / 运营 域名白名单、隐私协议
代码上传 前端 开发版 / 体验版
审核发布 运营 正式版上线

二、发布前准备

2.1 必备账号与工具

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 合法域名
<web-view> 内嵌 H5 业务域名(另需下载校验文件)

若静态资源(图片、音视频、文件)与 API 不在同一域名,每个域名都要分别配置。


三、注册与创建小程序

3.1 注册

  1. 打开 微信公众平台
  2. 选择「小程序」→ 按指引完成注册(邮箱、主体信息、管理员微信扫码)
  3. 按需完成微信认证(部分能力、类目需要)

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 导入项目

  1. 打开微信开发者工具
  2. + → 导入项目
  3. 选择小程序项目目录
  4. 填写 AppID(测试号仅用于本地预览,不能走完整发布流程)
  5. 后端服务选「不使用云服务」(除非使用微信云开发)

7.2 发布前自测

建议在真机调试下验证核心路径:

  • 首页与主要 Tab 可正常打开
  • 登录 / 注册(如有)
  • 核心业务流程可走通
  • 上传、下载、支付等涉及域名白名单的功能
  • 分享、扫码进入指定页面(如有)
  • 弱网、无网时的提示是否友好

7.3 上传代码

  1. 开发者工具右上角 → 上传
  2. 填写版本号(建议语义化,如 1.0.0)和项目备注
  3. 上传成功后,登录公众平台 → 管理 → 版本管理 → 开发版本 可见该版本

八、体验版与提交审核

8.1 体验版(推荐)

版本管理 → 开发版本 → 选为体验版

生成体验版二维码,供产品、测试、运营在真机验证,减少审核驳回概率。

8.2 提交审核

在开发版本上点击 提交审核,按页面填写:

项 说明
配置功能页面 选择审核人员会看到的核心页面路径
测试账号 若需登录,提供可用账号密码(及验证码说明)
服务类目 选择与实际功能匹配的类目,需相应资质
功能描述 简要说明小程序做什么、怎么用
补充材料 特殊行业、UGC、AI 生成等可能需额外资质或说明

政策随平台更新而变化,以提交审核页当前要求为准。

8.3 常见驳回原因

原因 处理建议
域名未配置 / 非 HTTPS 检查服务器域名与证书
页面无法打开或接口报错 真机连生产环境复现并修复
缺少隐私协议 补全隐私指引与小程序内链接
测试账号不可用 提供有效账号,确保审核期间不过期
类目与功能不符 调整类目或补充资质
内容违规 加强审核机制、举报入口、用户协议

可在 版本管理 → 审核版本 查看驳回原因,修改后重新上传、再提审。


九、发布上线

审核通过后:

  1. 版本管理 → 审核版本 → 全量发布(或灰度发布,若已开通)
  2. 用户通过搜索小程序名称、扫码、分享卡片等方式访问正式版
  3. 后续迭代:改代码 → 上传 → 提审 → 发布(旧用户逐步更新到新版本)

版本号建议

  • 上传版本号:每次上传递增,便于回溯
  • 用户可见版本:可在 app.json 或关于页展示,与上传版本保持一致或映射

十、发布检查清单

可直接复制使用:

账号与平台

  • AppID 已正确配置
  • 开发者 / 体验者已添加
  • request / uploadFile / downloadFile(及 socket)域名已配置
  • 隐私保护指引、用户协议已填写并在小程序内可访问
  • 服务类目与资质齐全

后端(如有)

  • 生产环境部署完成,HTTPS 正常
  • 数据库与第三方服务为生产配置
  • 接口与静态资源域名均在白名单内

小程序代码

  • API 地址已切换为生产 HTTPS
  • 真机核心流程验证通过
  • 关闭「不校验合法域名」后仍正常
  • 无硬编码密钥、无遗留 mock

审核材料

  • 测试账号与操作说明已准备
  • 功能页面路径已配置
  • 特殊行业补充材料已上传(如需要)

十一、常见问题

Q1:提示「不在以下 request 合法域名列表中」

  1. 确认公众平台已配置对应域名
  2. 确认请求 URL 为 https:// 且主机名与配置完全一致(子域名不通用)
  3. 关闭开发者工具「不校验合法域名」后重试

Q2:uploadFile / downloadFile 失败

分别检查 uploadFile、downloadFile 合法域名是否配置,以及服务端是否返回正确状态码与 CORS(小程序侧主要受域名白名单限制)。

Q3:开发工具正常,真机异常

真机走正式域名校验和网络环境。优先用真机调试 + 体验版排查,排除仅本地生效的设置。

Q4:<web-view> 打不开 H5

需在 业务域名 中配置 H5 域名,并在域名根路径放置微信提供的校验文件。

Q5:审核通过但用户看不到新版本

确认已点击「全量发布」;用户端可能存在缓存,或尚未打开小程序触发更新。

Q6:使用微信云开发还需要自建服务器吗?

若全部使用云开发(云函数、云数据库、云存储),则配置方式不同,需在云开发控制台绑定环境,而非传统 request 域名。本文主要针对自建后端场景。


十二、相关官方文档


文档版本:2026-09 · 通用微信小程序发布流程